Это типичная проблема, но после частых попыток случайных решений, предоставляемых в качестве ответов на подобные вопросы, мой код по-прежнему создает исключение NullPointerException, когда я обращаюсь к текстовому элементу фрагмента из Activity.NullPointerException при доступе к текстовому элементу Fragment в действии
я могу включить (и вид) мой фрагмент, когда его TextView имеет предопределенный текст или с помощью setText()
в onCreateView()
класса фрагмента, но не используя метод установки (здесь set_message_success()
).
Это мой фрагмент класс Fragment_Message
:
public class Fragment_Message extends Fragment {
TextView textview_message;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_messagebox, container, false);
textview_message = (TextView) view.findViewById(R.id.fragment_textview_message);
textview_message.setText("test");
return view;
}
public void set_message_success(String text) {
textview_message.setText(text);
}
}
И соответствующие строки из класса активности:
FragmentManager frag_manager = getFragmentManager();
FragmentTransaction transaction = frag_manager.beginTransaction();
Fragment_Message fragment = new Fragment_Message();
fragment.set_message_success(message_green);
transaction.add(R.id.home_fragment_container, fragment, "Fragment");
transaction.commit();
home_fragment_container
является RelativeLayout в моем main_activity.xml, fragment_textview_message
является TextView в fragment_messagebox.xml, просто чтобы вы знали, что это такое.
Ошибка NullPointerException в set_message_success()
. Есть идеи?
'textview_message' установлен в' null' возможно? Существует ли 'R.id.fragment_textview_message'? – toddlermenot
@toddlermenot Да, 'fragment_textview_message' является идентификатором textView в файле fragment_messagebox.xml. – Peder