How can I open fragments inside second activity by listview item clicks from main activity. I don't know how to open a specific viewpager fragment by list view item click like: Fragment 1 of listview opens the fragment 1 of scrolling activity and so on. If you want I can send you the scrolling activity java codes.
public class MainActivity extends AppCompatActivity implements
View.OnClickListener {
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Button btnSimpleTabs = (Button) findViewById(R.id.scrollingTabs);
btnSimpleTabs.setOnClickListener(this);
listView = (ListView) findViewById(R.id.listView1);
String[] values = new String[]{
"Fragment 1 ::",
"Fragment 2 ::",
"Fragment 3 ::",
"Fragment 4 ::",
"Fragment 5 ::",
"and so on....",
};
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, android.R.id.text1, values){
};
listView.setAdapter(adapter);
//linking from 1 item to other activity stars with if options//
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// global string to class
String selectedValue = String.valueOf(parent.getItemAtPosition(position));
switch (selectedValue) {
case "Fragment 1 ::": {
Intent myIntent = new Intent(view.getContext(), ScrollableTabsActivity.class);
startActivityForResult(myIntent, 0);
break;
}
case "Fragment 2 ::": {
Intent myIntent = new Intent(view.getContext(), ScrollableTabsActivity.class);
startActivityForResult(myIntent, 0);
break;
}
case "Fragment 3 ::": {
Intent myIntent = new Intent(view.getContext(), ScrollableTabsActivity.class);
startActivityForResult(myIntent, 0);
break;
}
case "Fragment 4 ::": {
Intent myIntent = new Intent(view.getContext(), ScrollableTabsActivity.class);
startActivityForResult(myIntent, 0);
break;
}
case "Fragment 5 ::": {
Intent myIntent = new Intent(view.getContext(), ScrollableTabsActivity.class);
startActivityForResult(myIntent, 0);
break;
}
}
}
});
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.scrollingTabs:
startActivity(new Intent(MainActivity.this, ScrollableTabsActivity.class));
break;
}
}
}
I think you want to open specific fragment using a view pager in ScrollableTabsActivity class. First, you need to pass reference (which_fragment) means which fragment you need to move so
case "Fragment 1 ::": {
Intent myIntent = new
Intent(view.getContext(), ScrollableTabsActivity.class);
myIntent.putExtra("which_fragment", 0);//0 is reference for //move framgnet 1
startActivityForResult(myIntent, 0);
break;
}
case "Fragment 2 ::": {
Intent myIntent = new
Intent(view.getContext(), ScrollableTabsActivity.class);
myIntent.putExtra("which_fragment", 1);//1 is reference for //move framgnet 2
startActivityForResult(myIntent, 0);
break;
}
ans so on...
in ScrollableTabsActivity first set the view pager adapter and one method in viewpager is setCurrentItem
viewpager.setCurrentItem("which_fragment);
you need to call this method after setting adapter like that
viewpager.setCurrentItem(getIntent().getExtra().getInt("which_fragment"));
pass in startActivity
intent data, which you will check in SecondActivity and open specific fragment
Intent intent = new Intent(MainActivity.this, ScrollableTabsActivity.class);
intent.putExtra("your_specific_key", key);
startActivity(intent);
And in you new activity you get data by key and open fragment by it
String s = getIntent().getStringExtra("your_specific_key");
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.