2017-02-22 5 views
1

У меня есть два фрагмента, и я хочу отправить фрагмент2 в фрагмент1 и сохранить его в строке в фрагменте1. Когда я пытаюсь сделать это обычным способом, это показывает мне ошибку, которую я опубликовал. Кто-нибудь, пожалуйста, помогите мне.Как передать строку из одного фрагмента в другой в android

Fragment2.class

Bundle bundle=new Bundle(); 
bundle.putString("message", value);//value= my value from code 
Fragmentclass2 frag2=new Fragmentclass2(); 
frag2.setArguments(bundle); 

Fragment1.class журнал

final String store= getArguments().getString("message"); 

Ошибка:

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference 
+0

Вы устанавливаете свой комплект в Fragmentclass2 ... разве это не Fragmentclass1? Кроме того, убедитесь, что вы показываете экземпляр объекта, который вы устанавливаете аргументом –

ответ

0

Я рекомендую вам использовать общую практику newInstance() фрагмент.

Для этого необходимо рассмотреть, чтобы создать метод newInstance() в вашем Fragmentclass1 так:

public static Fragmentclass1 newInstance(String value) { 
    Fragmentclass1 fragmentclass1 = new Fragmentclass1(); 

    Bundle args = new Bundle(); 
    args.putString("message", value); 
    fragmentclass1.setArguments(args); 

    return fragmentclass1; 
} 

в вашем Fragmentclass2 вы звоните:

Fragmentclass1.newInstance("YOUR_MESSAGE") 

это создаст Fragmentclass1 поэтому последняя вещь do - извлечь аргументы в onCreate из Fragmentclass1. Как вы делали:

final String store= getArguments().getString("message"); 
+0

Это код, который мне нужно написать –

+0

Да, вы можете использовать этот код. Вы поняли, это? –

+0

Можете ли вы ответить четко. Я имею в виду чистый код с использованием экземпляра и всех –

Смежные вопросы