Fragment中調(diào)用activity中的方法
在Fragment中想調(diào)用activity中的方法,只需在Fragment中先創(chuàng)建一個(gè)activity的對(duì)象,然后用這個(gè)對(duì)象直接調(diào)用即可
例如要在占據(jù)全屏的fragment中添加一個(gè)按鈕,使其可以點(diǎn)擊返回到activity,
1.要先在activity中,也可以是調(diào)用此fragment的類里,將此fragment的事務(wù)添加進(jìn)返回棧中
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction transaction = fm.beginTransaction();
transaction.replace(R.id.weather_layout, fragment);
transaction.addToBackStack(null); // 添加返回棧中
transaction.commit();
2.在activity中重寫onBackPressed方法
public void onBackPressed() {
super.onBackPressed();
}
3.在fragment中創(chuàng)建activity對(duì)象并調(diào)用onBackPressed方法
imgBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
WeatherActivity wa=(WeatherActivity) getActivity();
wa.onBackPressed();
}
});
Fragment中使用SharedPreferences在本地存儲(chǔ)數(shù)據(jù)
廢話少說(shuō),直接貼代碼
SharedPreferences.Editor editor = getActivity().getSharedPreferences("data", Context.MODE_PRIVATE).edit();
editor.putString("name", cityname);
editor.commit();
上述代碼要將城市名cityname儲(chǔ)存在本地中,下面是獲取方法:
SharedPreferences pref = getActivity().getSharedPreferences("data", Context.MODE_PRIVATE);
String cityNameTemp = pref.getString("name", "");