我有一个警告对话框,如果用户没有警报将用户发送到警报部分,则对话框和警报部分处于相同的活动但不同的片段
我的对话框来自“LifeFragment.java”和“alarmsfragment on”alarmsfragment.java“
如何将用户发送到其他片段?
更新
有了这个,我告诉活动从哪里开始:
tabs.setViewPager(pager);
pager.setCurrentItem(2);
我必须做这样的事情?:
Intent myIntent = new Intent(v.getContext(),
HomeScreenActivity.class);
myIntent.putExtra("1", ViewPager);
答案 0 :(得分:3)
<强> 1。来自对话框的火灾活动(如果尚未全部触发,则添加标志):
Intent intent = new Intent(context, Activity.class);
定义活动中额外的键
添加额外的哪个片段你想表现
intent.putExtra(Activity.STRING_KEY, Activity.VALUE);
context.startActivity(intent);
<强> 2。活动加载时:
public static String STRING_KEY = "myKey"; public static String VALUE1 = "fragment1"; public static String VALUE2 = "fragment2"; private String _extra; private int _fragmentNumber;
if(savedInstanceState != null) { _extra = getIntent().getStringExtra(STRING_KEY); // or IntegerExtra(key) }
ViewPager pager = (ViewPager) findViewById(R.id.pager); pager.setAdapter(Adapter);
第3。通过托管活动中的viewpager更改片段:
(例如,使用if或switch语句收到“额外”)
// if example:
if(_extra != null && _extra == VALUE) {
// change here fragment
pager.setCurrentItem(numberOfFragmentToShow)
}
// switch example:
switch(_extra){
case VALUE1:
_fragmentNumber = 1;
break;
case VALUE2
_fragmentNumber = 2
break;
default:
_fragmentNumber = 3;
}
pager.setCurrentItem(_fragmentNumber);
而不是字符串额外值,您可以使用整数值并直接在寻呼机上使用
这里有详细的例子:
<强> Selecting a specified page in ViewPager when starting 强>
答案 1 :(得分:1)
您必须重定向到您的活动,发送一些数据,例如在Bundle中,并根据此数据确定您的活动应显示哪个片段(以及活动是否应该调用片段的某些方法。
意图仅用于启动活动或服务,而不是片段。