[英]listview item click opens specific fragment viewpager
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. 我不知道如何通过列表视图项单击来打开特定的viewpager片段:listview的片段1打开滚动活动的片段1,依此类推。 If you want I can send you the scrolling activity java codes. 如果您愿意,我可以向您发送滚动活动Java代码。
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. 我认为您想使用ScrollableTabsActivity类中的视图分页器打开特定片段。 First, you need to pass reference (which_fragment) means which fragment you need to move so 首先,您需要传递参考 (which_fragment)表示您需要移动哪个片段
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 在ScrollableTabsActivity中首先设置视图分页器适配器,并且在viewpager中设置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 传入startActivity
意图数据,您将在SecondActivity中检入并打开特定片段
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");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.