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 и установите данные.

Другие вопросы по тегам