簡體   English   中英

android如何在onBackPressed()時設置viewpager的特定項目位置?

[英]android how to set particular item position for viewpager when onBackPressed()?

//這是viewpager的適配器

 public void setupViewPager(){
    pageAdapter = new PageAdapter(getSupportFragmentManager());
                pageAdapter.addFragment(FragmentDesigns.newInstance(), "INDIAFILINGS");
                icfo = ICFO.newInstance();
                pageAdapter.addFragment(icfo, "iCFO PLATFORM");
                viewPager.setAdapter(pageAdapter);
                tabLayout.setupWithViewPager(viewPager);
    // here code to set particular item in viewpager
    int pageRedirect;
                pageRedirect=CommonClass.getPageRedirect();
                try {
                    if(pageRedirect!=0){
                        viewPager.setCurrentItem(1);
                    }
                }catch (Exception e){
                    e.printStackTrace();
                }
    }

我正在用兩個片段實現viewpager在第二個片段中,我有數據列表,如果用戶從列表中選擇任何項目,它將重定向到另一個活動。如果用戶在活動中執行onbackPress ,我想將viewpager第二個片段設置為當前片段

注意:問題是當我做onbackPress的應用程序越來越近

在第二個活動中覆蓋onBackPressed方法,以免發生系統默認行為

@Override
public void onBackPressed() {

   Intent firstintent = new Intent(context,Firstactivity.class);

firstintent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);

   startActivity(firstintent);

}

這將打開第一個活動,關閉第二個活動並將結果傳遞到第一個活動的onNewIntent中

在您的第一個活動中,覆蓋onNewIntent,以便找到反向按下結果

@Override
protected void onNewIntent(Intent intent) {
    yourvp.setCurrentItem(positionyouneed);
}

這應該為您解決問題

@Override
    public void onBackPressed() {
        if (viewPager.getCurrentItem() != 0) {
            viewPager.setCurrentItem(secondViewpagerItemPostion,false);
        }else{
             super.onBackPressed();
        }

    }

將您的當前視圖分頁器位置存儲在sharepref中,如果不為null,則檢查它的位置,然后viewpager.setCurrentItem(shareprefPosition);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM