Android - Замена фрагмента и изменение его TextViews
Я пытаюсь изменить текст TextView внутри фрагмента, который заменяет старый фрагмент в той же деятельности.
Я уже искал существующие ответы на этот вопрос, и я нашел эти два, но решения, кажется, не работают для меня:
Динамически изменять TextView во фрагменте (public void processMessage)
Изменить TextView внутри фрагмента
Проблема в том, что когда я создаю метод для установки текста TextView внутри моего нового фрагмента, он не находит то представление, которое я ищу.
Вот код фрагмента, который должен заменить старый:
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class Fragment_sbagliato extends Fragment {
public Fragment_sbagliato() {}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_sbagliato, container,
false);
return rootView;
}
public void myNewText(String[] text){
TextView textView = (TextView)findViewById(R.id.answer);
textView.setText(text[0]);
}
}
Чтобы быть конкретным, ошибка "ответ не может быть решен или не является полем".
Любое предложение?
Заранее спасибо!
2 ответа
Это ошибка компиляции - R.id.answer не определен. Обычно это происходит потому, что исходный файл java импортирует класс ресурсов платформы "android.R" вместо конкретного класса ресурсов вашего приложения "R" или из-за ошибки в файле ресурсов XML, которая вызывает проблемы при создании ресурсов.
Когда вы вызываете метод myNewText? ваше представление фрагмента не будет создано, как только вы совершите транзакцию фрагмента. Лучший способ - передать массив строк ответа в качестве аргумента фрагмента, а затем переопределить метод onActivityCreated для фрагмента, вызовите findviewbyId и установите данные.