Android Fragment 调用宿主Activity 里面的方法
生活随笔
收集整理的這篇文章主要介紹了
Android Fragment 调用宿主Activity 里面的方法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
方法 1 :
直接在Fragment 寫
MainActivity main = (MainActivity) getActivity();main.xx; // xx 是 MainActivity 里面的方法
代碼少,不過如果代碼要求高,就不建議了,如果getActivity 為空了,這個時候不就是出現(xiàn)問題了嗎?
方法2 :
在Fragment 里面定義一個接口
public interface testDataCallback {void testData();}
在調(diào)用的方法的地方調(diào)用代碼如下
if (getActivity() instanceof testDataCallback) {((testDataCallback) getActivity()).testData();}
在 Activity 里面的實現(xiàn)這個接口testDataCallback
// 實現(xiàn) testDataCallback
public class ShowActvity extends AppCompatActivity implements View.OnClickListener,MeFragment.testDataCallback {// 下面就在方法里面寫下調(diào)用的方法了
@Overridepublic void testData() {Log.e("********", "要傳遞的數(shù)據(jù)");Toast.makeText(ShowActvity.this, "這個Toast代表一個方法吧", Toast.LENGTH_SHORT).show();}
方法 3?:
在MainActivity 里面 寫接口并寫一個方法如下
private onIntentDataCallback intentDataCallback = new onIntentDataCallback() {@Overridepublic void onIntentData() {Log.e("********", "要傳遞的數(shù)據(jù)");Toast.makeText(ShowActvity.this, "這個Toast代表一個方法吧", Toast.LENGTH_SHORT).show();}};public interface onIntentDataCallback {void onIntentData();}
這里沒有寫set 值,放在了fragment 里面 代碼如下
private ShowActvity.onIntentDataCallback intentDataCallback;public void setonIntentDataCallback(ShowActvity.onIntentDataCallback intentDataCallback) {this.intentDataCallback = intentDataCallback;}
然后在調(diào)用的地方寫
if (intentDataCallback != null) {intentDataCallback.onIntentData();}
這樣還沒有完呢,Fragment 的set 方法沒有調(diào)用呢,所以最后還需要在Activity 里面 的點擊切換Fragment 的地方調(diào)用一下set方法
hpFragment.setonIntentDataCallback(intentDataCallback);
如果感覺方法3有點亂話,可以點擊看下demo
?
總結(jié)
以上是生活随笔為你收集整理的Android Fragment 调用宿主Activity 里面的方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 笔记本网卡多少钱啊?
- 下一篇: Android 绘制同心圆 (2个圆叠加