2013-11-19 5 views
1

Я пытаюсь просто отправить данные из моего класса Activity в свой фрагмент, но когда я пытаюсь вызвать «setText (String text)», в моем фрагменте программа сработает.Android: отправка данных на фрагменты

ActivityClass:

Fragment_green green = new Fragment_green(); 
     transaction.replace(R.id.infoFragment, green); 
     transaction.addToBackStack(null); 
     transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
     transaction.commit(); 
     green.setText("bar"); //Works okay this far 

Мой Fragment_green:

public class Fragment_green extends Fragment { 

String textShow; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
{ 
    return inflater.inflate(R.layout.fragment_green, container, false); 
} 

public void setText(String text){ 
    TextView textView = (TextView) getView().findViewById(R.id.textGreen); 
    textView.setText(text); //Crash :(
}} 

Все остальное работает. Я могу изменить фрагмент на другой и так далее. Я видел несколько подобных сообщений, но когда я пытаюсь внедрить их, возникают другие проблемы.

Я ценю все полезные ответы!

+0

Можем ли мы получить журнал аварий? Я предполагаю, что textview имеет значение NULL, но было бы легче сказать, можно ли увидеть исключение. – HannahMitt

+0

http://pastebin.ca/2477331 textView возвращает null для причины som, вы правы. Любая идея, как это исправить? Спасибо! – user2774429

ответ

1

Если вы уверены, что текстовое изображение находится в макете фрагмента, то это, вероятно, ошибка жизненного цикла. Взгляд фрагмента не был завышен, когда вы пытаетесь получить доступ к текстовому виду.

Передача информации фрагменту таким образом не рекомендуется. Попробуйте передать строку через связку и установить текст в текстовом виде при вызове onCreateView.

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