[英]listview item click opens specific fragment viewpager
如何通过主要活动的列表视图项单击来打开第二个活动内的片段。 我不知道如何通过列表视图项单击来打开特定的viewpager片段:listview的片段1打开滚动活动的片段1,依此类推。 如果您愿意,我可以向您发送滚动活动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;
}
}
}
我认为您想使用ScrollableTabsActivity类中的视图分页器打开特定片段。 首先,您需要传递参考 (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;
}
等等
在ScrollableTabsActivity中首先设置视图分页器适配器,并且在viewpager中设置setCurrentItem方法
viewpager.setCurrentItem("which_fragment);
您需要像这样设置适配器后调用此方法
viewpager.setCurrentItem(getIntent().getExtra().getInt("which_fragment"));
传入startActivity
意图数据,您将在SecondActivity中检入并打开特定片段
Intent intent = new Intent(MainActivity.this, ScrollableTabsActivity.class);
intent.putExtra("your_specific_key", key);
startActivity(intent);
在新活动中,您可以通过键获取数据并通过其打开片段
String s = getIntent().getStringExtra("your_specific_key");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.