Android中Activity和Fragment傳遞數(shù)據(jù)的兩種方式
1、第一種方式,也是最常用的方式,就是使用Bundle來傳遞參數(shù)
MyFragment myFragment = new MyFragment();
Bundle bundle = new Bundle();
bundle.putString("DATA",values);//這里的values就是我們要傳的值
myFragment.setArguments(bundle);
然后在Fragment中的onCreatView方法中,通過getArgments()方法,獲取到bundle對象,然后通過getString的key值拿到我們傳遞過來的值。
2、第二種方式,是在宿主Activity中定義方法,將要傳遞的值傳遞到Fragment中,在Fragment中的onAttach方法中,獲取到這個(gè)值。
//宿主activity中的getTitles()方法
public String getTitles(){
return "hello";
}
//Fragment中的onAttach方法
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
titles = ((MainActivity) activity).getTitles();
}
//通過強(qiáng)轉(zhuǎn)成宿主activity,就可以獲取到傳遞過來的數(shù)據(jù)
3、下面在擴(kuò)展一下創(chuàng)建Fragment和傳遞數(shù)值
如果我們不需要傳遞數(shù)值,那就直接可以在宿主activity中,跟平常一樣創(chuàng)建fragment,但是如果我們需要傳遞數(shù)據(jù)的話,可以使用newInstance(數(shù)據(jù))方法來傳遞,這個(gè)方法是自己定義的,但是是定義在Fragment中的一個(gè)靜態(tài)方法。
static MyFragment newInstance(String s){
MyFragment myFragment = new MyFragment();
Bundle bundle = new Bundle();
bundle.putString("DATA",s);
myFragment.setArguments(bundle);
return myFragment;
}
//同樣,在onCreatView中直接獲取這個(gè)值
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.layout_fragment,container,false);
Bundle bundle = getArguments();
String data = bundle.getString("DATA");
tv = (TextView) view.findViewById(R.id.id_fm_tv);
if(data != null){
tv.setText(data);
}
return view;
}
在宿主activity中,創(chuàng)建Fragment
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.setCustomAnimations(android.R.anim.fade_in,android.R.anim.fade_out);
fragment1 = MyFragment.newInstance("這是第一個(gè)fragment");//這里只需要直接調(diào)用這個(gè)方法,就創(chuàng)建了一個(gè)fragment
fragment2 = MyFragment.newInstance("這是第二個(gè)fragment");
fragment3 = MyFragment.newInstance("這是第三個(gè)fragment");
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android從Fragment跳轉(zhuǎn)到其他Activity的簡單實(shí)例
- Android開發(fā)使用Activity嵌套多個(gè)Fragment實(shí)現(xiàn)橫豎屏切換功能的方法
- Android 中Fragment與Activity通訊的詳解
- 詳解Android activity與fragment之間的通信交互
- Android鬧鐘啟動時(shí)間設(shè)置無效問題的解決方法
- 安卓(Android)開發(fā)之統(tǒng)計(jì)App啟動時(shí)間
- 準(zhǔn)確測量 Android 應(yīng)用中 Activity 和 Fragment 的啟動時(shí)間的詳細(xì)過程
相關(guān)文章
Android 中 viewpager 滑動指示器的實(shí)例代碼
本文通過實(shí)例代碼給大家介紹了android 中 viewpager 滑動指示器,代碼簡單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-12-12
Android開發(fā)快速實(shí)現(xiàn)底部導(dǎo)航欄示例
這篇文章主要為大家介紹了Android開發(fā)快速實(shí)現(xiàn)底部導(dǎo)航欄的示例代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04
Android內(nèi)置SQLite的使用詳細(xì)介紹
這篇文章主要介紹了Android內(nèi)置SQLite的使用詳細(xì)介紹,文章通過文章展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09
android-使用環(huán)信SDK開發(fā)即時(shí)通信功能(附源碼下載)
本篇文章主要介紹了android-使用環(huán)信SDK開發(fā)即時(shí)通信功能,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。2016-12-12
Android App中自定義View視圖的實(shí)例教程
這篇文章主要介紹了Android App中自定義View視圖的實(shí)例教程,詳細(xì)講解了如何在創(chuàng)建View中定義各種鎖需要的樣式屬性,需要的朋友可以參考下2016-04-04
Android 應(yīng)用中跳轉(zhuǎn)到應(yīng)用市場評分示例
本篇文章主要介紹了Android 應(yīng)用中跳轉(zhuǎn)到應(yīng)用市場評分示例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2017-02-02

