1. 程式人生 > >兩個Fragment之間怎樣通訊?

兩個Fragment之間怎樣通訊?

 首先明確一點:兩個Fragment之間不能直接通訊,只能通過它們所寄生的Activity作為橋樑進行通訊。

        場景假設:我們假設A這個Activity裡面有F1,F2兩個Fragment。F1裡面是新聞列表, F2裡面是新聞詳情,點選F1的某一條,要讓F2相應的發生改變。

   那具體怎麼實現呢?分兩步:

   1. 在F1裡面定義介面,A裡面實現介面。通過回撥實現F1與其父親A的通訊。

   2. 在A介面回撥方法裡與F2通訊,將引數傳給F2。

實現程式碼:

F1的關鍵程式碼:

    public interface OnArticleClickedListener {
        public void onArticleSelected(int position);
    }

   setOnArticleClickedListener(OnArticleClickedListener listener){
		this.listener = listener;
    }

   
    public void onListItemClick(ListView l, View v, int position, long id) {
        this.listener.onArticleSelected(position);
    }

A的關鍵程式碼:

 f1.setOnArticleClickedListener(new F1.OnArticleClickedListener(){
	onArticleSelected(int position){
               //呼叫f2的方法,與進行通訊
		f2.showArticleDetail(position);
      }
});