第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何將 Intent extras 傳遞給 PreviousActivity 中的 Activity

如何將 Intent extras 傳遞給 PreviousActivity 中的 Activity

陪伴而非守候 2023-04-26 16:48:39
我有兩個(gè) Activity Activity A 和 B。Activity B 包含 viewpager,它有兩個(gè)片段,F(xiàn)ragment I和Fragment II。我正在尋找一種解決方案,將兩個(gè)單獨(dú)的意圖附加項(xiàng)即意圖 extras_one和intenttextra_two從 Activity A 傳遞到 B,并在片段 I中加載第一個(gè)意圖附加項(xiàng),在片段 II中加載第二個(gè)意圖附加項(xiàng)。這可能嗎。這是我在 Activity B 中的 viewpager        ViewPager viewPager = (ViewPager) findViewById(R.id.pager);        ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());        adapter.addFragment(new Home(), "Fragment I");        adapter.addFragment(new Grade(), "Fragment II");        viewPager.setAdapter(adapter);        TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);        tabLayout.setupWithViewPager(viewPager);    }我現(xiàn)在使用 case 語(yǔ)句在 Activity A 中傳遞參數(shù)。        case 0:                Intent math_strt = new Intent(itemView.getContext(), MainActivity.class);                math_strt.putExtra(EXTRA_URL, "https://api.myjson.com/bins/16mecx");                itemView.getContext().startActivity(math_strt);                break; 提前致謝。
查看完整描述

3 回答

?
侃侃爾雅

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊

是的,您可以將數(shù)據(jù)傳遞給片段但不使用意圖而是使用捆綁包,因此必須稍微修改代碼。試試下面的代碼片段


? ? Bundle bundle1,bundle2;


? ? ViewPager viewPager = (ViewPager) findViewById(R.id.pager);

? ? ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());


? ? Home frag1 = new Home();

? ? Grade frag2 = new Grade();


? ? bundle1 = new Bundle();

? ? bundle1.putString("key",data); //pass the data you want to pass

? ? bundle2 = new Bundle();

? ? bundle2.putString("key",data);


? ? frag1.setArguments(bundle1);//set arguments require a bundle?

? ? frag2.setArguments(bundle2);//set arguments require a bundle?


? ? adapter.addFragment(frag1, "Fragment I");

? ? adapter.addFragment(frag2, "Fragment II");



? ? viewPager.setAdapter(adapter);


? ? TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);

? ? tabLayout.setupWithViewPager(viewPager);


? ?//Inside the fragments create another bundle

? ? Bundle b = getIntent().getExtras();

? ? String data = b.getString("key");



查看完整回答
反對(duì) 回復(fù) 2023-04-26
?
幕布斯6054654

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊

這是解決方案,您必須在 Activity A 中創(chuàng)建 2 個(gè)方法


1. passIntent1()

private void passIntent1(){

     Intent intent = new Intent(getBaseContext(), SecondActivity.class);

     intent.putExtra("INTENT_VALUE", "A");

     intent.putExtra("FRAGMENT_A", value for A);

     startActivity(intent);

}


2. passIntent2()

private void passIntent2(){

     Intent intent = new Intent(getBaseContext(), SecondActivity.class);

     intent.putExtra("INTENT_VALUE", "B");

     intent.putExtra("FRAGMENT_B", value for B);

      startActivity(intent);

 }

現(xiàn)在,在 B 活動(dòng)中,獲取您的 Intent


    String value = getIntent().getStringExtra("INTENT_VALUE");

    if(value.equalsIgnoreCase("A")){

         String FragA =  getIntent().getStringExtra("FRAGMENT_A");

    }else if(value.equalsIgnoreCase("B")){

         String FragB =  getIntent().getStringExtra("FRAGMENT_B");

   }

現(xiàn)在將值 FragA 傳遞給片段 A,將 FragB 傳遞給片段 B


更新代碼如下


在 Activity 中使用下面的代碼在片段中傳遞值。您必須使用 Bundle 將數(shù)據(jù)傳遞給片段


Home home = new Home();

Bundle homeBundle = new Bundle();

homeBundle.putString("KEY","VALUE");

// Your Key must same when you get your values in Fragment Home

home.setArguments(homeBundle);

同樣,您對(duì) Fragment Grade 也做了同樣的事情


Grade grade = new Grade();

Bundle gradeBundle = new Bundle();

gradeBundle.putString("KEY","VALUE");

grade.setArguments(gradeBundle);

將片段添加到適配器


adapter.addFragment(home, "Fragment I");

adapter.addFragment(grade, "Fragment II");

現(xiàn)在在 Fragment 中,使用下面的代碼獲取值


Bundle bundle = getArguments();

if(bundle!=null){

    String value = bundle.getString("KEY");

}

希望,現(xiàn)在您可以更好地理解。


查看完整回答
反對(duì) 回復(fù) 2023-04-26
?
慕后森

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊

就我而言,我在 ActivityA 中有一個(gè) fragmentA,它位于 RecyclerView 中。我想將一個(gè) ID 傳遞給位于 ActivityB 和 ViewPager 內(nèi)的另一個(gè) fragmentB。我所做的是將 FragmentA 和 Intent 傳遞給 ActivityB


 Intent intent = new Intent(getContext(), EachRoomActivity.class);

 intent.putExtra("room_id", data.getId());

 startActivity(intent);

在 ActivityB 的 onCreate() 方法中,我得到了 intentExtra


Intent intent = getIntent();

String room_id = intent.getStringExtra("room_id");

這是我定義具有 TabLayout 片段的 Viewpager 的地方。在 ViewPagerAdapter 構(gòu)造函數(shù)中,我添加了對(duì) ID 的要求


 public EachRoomViewPagerAdapter(@NonNull FragmentManager fm, String room_id) {

    super(fm);

    this.room_id = room_id;

}

因此,在我為 ViewPager 切換視圖時(shí),我將 Bundle Extra 添加到片段中。


 @NonNull

@Override

public Fragment getItem(int position) {

    Fragment fragment = null;


    Bundle args = new Bundle();

    args.putString("room_id", room_id);



    switch (position) {

        case 1:

            fragment = new EachRoomMySubscriptionsFragment();

            fragment.setArguments(args);

            break;

        case 2:

            fragment = new EachRoomSchedulledEventsFragment();

            fragment.setArguments(args);

            break;

        case 3:

            fragment = new EachRoomPreviousEventsFragment();

            fragment.setArguments(args);

            break;

        default:

            fragment = new EachRoomAllEventsFragment();

            fragment.setArguments(args);

    }

    return fragment;

}

現(xiàn)在,在 Fragment 的 OnCreateView() 方法中,我得到了 Bundle Extra


Bundle bundle = getArguments();

  if(bundle!=null){

     room_id = bundle.getString("room_id");

  }

就是這樣。


查看完整回答
反對(duì) 回復(fù) 2023-04-26
  • 3 回答
  • 0 關(guān)注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)