按钮单击时从1活动移动到特定片段。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了按钮单击时从1活动移动到特定片段。相关的知识,希望对你有一定的参考价值。

我有一个活动,我有2个按钮,当我点击第一个按钮,它将打开第一个片段,当我点击第二个按钮,它将打开第二个片段。

public class PagerAdapter extends FragmentPagerAdapter {


public PagerAdapter(FragmentManager fm) {
    super(fm);
}

@Override
public Fragment getItem(int position) {

    switch(position)
    {
        case 0 :
            return new Three();

        case 1 :
            return new Two() ;

        case 2 :
            return new One();

        default :
            break ;
     }
     return null ;

}

@Override
public int getCount() {
    return 3 ;
}

}

这是片段页面

public class MainActivity extends FragmentActivity {

ViewPager viewpager ;
ImageView a ;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    viewpager = findViewById(R.id.pager);
    PagerAdapter padapter  = new PagerAdapter(getSupportFragmentManager());
    viewpager.setAdapter(padapter);
    viewpager.setOffscreenPageLimit(3);

}

这是放置片段的主要活动

public class Index extends Activity {


ImageView index ;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_index);


    index = (ImageView) findViewById(R.id.index1);

    index.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(Index.this , MainActivity.class);
            startActivity(i);


        }
    });
}

}

这是索引页面,当我点击它时我有按钮,自动打开案例0片段我想点击打开特定片段

答案

您必须将片段索引从索引活动传递到main。 1)将索引置于意图中:

Intent i = new Intent(Index.this , MainActivity.class);
i.putExtra("fragment_index_key", 1);
startActivity(i);

2)获取主要活动的索引并更改寻呼机的页面

....
PagerAdapter padapter  = new PagerAdapter(getSupportFragmentManager());
viewpager.setAdapter(padapter);
viewpager.setOffscreenPageLimit(3);
int index = getIntent().getIntExtra("fragment_index_key", 0); // 0 is default value
viewpager.setCurrentItem(index);
另一答案

如果你想打开特定的索引片段,那么请像这样从Index Activity传递密钥

Intent i = new Intent(Index.this , MainActivity.class);
i.putExtra("index","position");  //Position means 0,1,2
startActivity(i);

在mainActivity Activity中,您可以获取从Index Activity传递的值并使用Fragment传递该值

viewpager.setCurrentItem(index);

像这个公共类一样,MainActivity扩展了FragmentActivity {

ViewPager viewpager ;
ImageView a ;
int index=0;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(getIntent().hasExtra("index")) {
     index = Integer.parseInt(getIntent().getExtras().getString("index"));
}
viewpager = findViewById(R.id.pager);
PagerAdapter padapter  = new PagerAdapter(getSupportFragmentManager());
viewpager.setAdapter(padapter);
viewpager.setCurrentItem(index);

}

以上是关于按钮单击时从1活动移动到特定片段。的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android 中单击 ImageView 时从一个片段移动到另一个片段?

如何在单击 RecyclerView 项目时从一个片段移动到另一个片段

从 Activity 到特定选项卡/片段的按钮 OnClick

如何从一个片段移动到一个活动

Acivity1 Fragment2 -> Activity2(单击按钮后)-> Activity1 Fragment2 从活动导航到特定片段

如何在 FAB 按钮单击时将数据从多个片段发送到单个活动