2016-09-20 9 views
0

私は親アクティビティが 'A'であるフラグメント 'X'を持っています。Androidスタジオ - フラグメントから別のアクティビティにコンテキスト値を渡すにはどうすればいいですか?

私は、メソッド 'getData()'を含む別のアクティビティ 'B'を持っています。このアクティビティには、Contextのオブジェクトがこのコンストラクタに渡される独自のパラメータ化されたコンストラクタもあります。

アクティビティB: -

public class B 
{ 
    Context _context; 
    String val="XYZ"; 

    public B(Context context) 
    { 
    this._context = context; 
    //Rest of the code 
    } 
    public String getData() 
    { 
    return val; 
    } 
} 

私のプログラムはのgetData()

フラグメントX 'X' フラグメントの活動 'B' のメソッドを呼び出すために私を必要とします -

public class X extends Fragment implements 
{ 
    String name; 

    Context context=getActivity().getApplicationContext(); 

    B obj1=new B(context); 
    //i have passed Context object from fragment X to Activity B 

    ButtonClickEvent(..) 
    { 
    name=obj1.getData(); 
    //Rest of the code 
    } 
} 

この問題は、フラグメントXを起動している間に発生しています。エラーはContextオブジェクトに関連していますが、私はexatclyが問題であることを理解していません。提案は大歓迎!ありがとう。

+0

間違いを報告されますか?また、なぜあなたはコンストラクタを使ってアクティビティをインスタンス化していますか?また、データを取得するには、アクティビティの新しいインスタンスを作成し、それに添付されていないフラグメントからそのデータを取得する以外の方法があります。これにより、後でアプリが成長するにつれて微妙で致命的なバグにつながる可能性があります。 –

答えて

2

二つの可能性の定義:フラグメントで

のでActivityconstructorを作成し、コンテキストを取得するためにそこにgetAcivity()を渡します。

ありがとうございました。

+0

あなたの提案が助けになりました!コンテキスト= getActivity()。getApplicationContext();私はOnCreateView()でこのステートメントを書いて、それは働いた! – sam88

関連する問題