2016-05-10 5 views
0

私のプロジェクトでは、フラグメントアクティビティでいくつかのデータを渡す必要があります。それ、どうやったら出来るの ?私はこのように試しました:アクティビティからフラグメントにデータを渡す方法

String json_string = "s"; 
Intent intent = new Intent(context, ShowMapFragement.class); 
intent.putExtra("json_data", json_string); 
context.startActivity(intent); 

しかし、それは正しく動作していません。私を助けてください。ここ

+0

これは、インテントを使用して別のアクティビティにデータを渡す正しい方法です。それはどうしていないのですか? – starkej2

+0

私の場合、フラグメントを拡張するクラスにデータを渡しています。私は問題があると思う。助けてください。 –

+0

ああ、それはFragmentActivityではないのですか?それはただの断片ですか?私は私の答えを更新します。 – starkej2

答えて

1

は、フラグメントに、アクティビティからデータを渡すための一つの方法である:

フラグメントクラスの静的のnewInstance()メソッドを作成します。

public static MyFragment newInstance(String valueToPass) { 
    MyFragment instance = new MyFragment(); 
    Bundle args = new Bundle(); 
    args.putString("key", valueToPass); 
    instance.setArguments(args) 
    return instance; 
} 

をするアクティビティ/フラグメントからデータを渡しますそのようなMyFragment:

MyFragment myFragment = MyFragment.newInstance("Hello World"); 

その後、あなたは()Fragment.onCreate(後の任意の時間)のデータを取得するためにこれを行うことができます

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     if (getArguments() != null) { 
      String passedValue = getArguments().getString("key"); 
      // passedValue == "Hello World" 
     } 
    } 
+0

私はこの部分を書く必要がありますか?私の断片クラスで? –

+0

はい@AbhishekDas、あなたのFragmentクラス内 – starkej2

関連する問題