如何从对话框重定向到片段



我有一个警报对话框,如果用户没有警报发送用户到警报部分,对话框和警报部分是在同一个活动,但不同的片段

我的对话框来自"LifeFragment.java"one_answers"alarmsfragment.java"上的"alarmsfragment "

如何将用户发送到另一个片段?

告诉活动从哪里开始:

    tabs.setViewPager(pager);
    pager.setCurrentItem(2);    

我必须这样做吗?:

Intent myIntent = new Intent(v.getContext(),
                        HomeScreenActivity.class);
                myIntent.putExtra("1", ViewPager);

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;
  • in onCreate(savedInstanceState) get intent extra
if(savedInstanceState != null) {
     _extra = getIntent().getStringExtra(STRING_KEY); // or IntegerExtra(key)
  }
  • 设置viewpager [findview, setadapter(在viewpager上),设置例如tablayout with viewpager等]
ViewPager pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(Adapter);

3。

(例如在接收到"extra"时使用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);

代替String额外值,可以使用Integer值并直接在分页

上使用

这里有详细的例子:

在启动

时选择ViewPager中的指定页面

你必须重定向到你的活动,发送一些数据,例如在一个Bundle中,并基于这些数据你决定你的活动应该显示哪个片段(如果活动应该调用片段的一些方法)。

意图只用于启动活动或服务,而不是片段。

最新更新