2016-07-12 7 views
0

私はアンドロイドスタジオフラグメントサンプルを使用しています。私の目標は、の値をfragment2のコードを使用してfragment1に設定することです。またfragment2のコードを使ってfragment1にあるListView lvを更新したいと思います。フラグメントが1つのアクティビティにあるかのように、フラグメント間でどのように通信しますか?

この例では、ARG_SECTION_NUMBERを前後に送信していますが、これはテキストにすぎず、リストビューでは機能しません。どのような動作しないことも、どのような動作しませんが、それは、どのように私は間の通信ん

public void myfunction(ListView lv) 
{ 
    int count = lv.getAdapter().getCount(); 

Attempt to invoke interface method 'int android.widget.ListAdapter.getCount()' on a null object referenceを与えるこの

new MainActivity().myfunction((ListView)rvl.findViewById(R.id.listView)); 

あるこの

private View rvza, rvl, rvea; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    rvza = inflater.inflate(R.layout.fragment_zeit_und_aktion, container, false); 
    rvl = inflater.inflate(R.layout.fragment_liste, container, false); 
    rvea = inflater.inflate(R.layout.fragment_eintragen_und_aendern, container, false); 
    .... 
    } 
...  
Button btnNeu = (Button) rvea.findViewById(R.id.btnNeu); //this line is somewhere... 

です1つの親の活性を有する断片?ヘルパークラスはありますか?

答えて

0

複数の子によって使用されているメソッドまたは変数にアクセスする場合は、親アクティビティをシングルトンにし、子フラグメント内の目的のメソッドまたは変数にアクセスします。また、フラグメント内のオブジェクトにアクセスする場合は、親アクティビティでそのフラグメントのオブジェクトを作成して初期化し、そのオブジェクトをさらに使用してフラグメントマネージャにフラグメントを追加または置換するのを忘れないでください。これにより、親の活動を通してすべての子供にアクセスできます。

シングルトンの作り方は?下記の例を参照してください。

public class SingletonExample { 
// Static member holds only one instance of the 
// SingletonExample class 
private static SingletonExample singletonInstance; 
// SingletonExample prevents any other class from instantiating 
private SingletonExample() { 
} 
// Providing Global point of access 
public static SingletonExample getSingletonInstance() { 
    if (null == singletonInstance) { 
     singletonInstance = new SingletonExample(); 
    } 
    return singletonInstance; 
} 
public void printSingleton(){ 
    System.out.println("Inside print Singleton"); 
} 

}

0

フラグメント間で通信する方法についてのAndroid開発者の公式ガイドがあります: https://developer.android.com/training/basics/fragments/communicating.html

基本的には、あなたのフラグメントAはインタフェースと活動の意志を経由しての活動に話をしますフラグメントBをルックアップし、そのフラグメントの一部のメソッドを呼び出します。根本的な細部に対処することなく、アプリケーションの異なる部分間の通信に使用することができます http://square.github.io/otto/ :あなたはより多くのものを分離したい場合

、しかし、あなたはオットーイベントバスのようなものを使用することができます。

関連する問題