Я пытаюсь изменить текст 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]);
}

}

Чтобы быть конкретным, ошибка: «ответ не может быть разрешен или не является полем».

Любое предложение?

Заранее спасибо!

0
Knorf 18 Май 2014 в 14:37

2 ответа

Лучший ответ

Это ошибка компиляции - R.id.answer не определен. Обычно это происходит из-за того, что исходный файл java импортирует класс ресурсов платформы android.R вместо класса ресурсов R вашего приложения или из-за ошибки в файле ресурсов XML, которая вызывает проблемы при создании ресурсов.

0
jspcal 18 Май 2014 в 10:43

Когда вы вызываете метод myNewText? ваше представление фрагмента не будет создано, как только вы зафиксируете транзакцию фрагмента. Лучший способ - передать массив строк ответа в качестве аргумента фрагмента, а затем переопределить метод onActivityCreated для вызова фрагмента findviewbyId установить данные

0
nizammoidu 18 Май 2014 в 10:56