我正在尝试让faq_fragment.xml中显示的TextViews

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/question_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:textAlignment="center"
        android:text="Title 1"/>

    <TextView
        android:id="@+id/answer_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:textAlignment="center"
        android:text="Description 1"
        android:textColor="#33000000"
        android:layout_marginTop="5dp"/>

</LinearLayout>


在我的片段课中

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    ((TextView)container.findViewById(R.id.question_text)).setText(title);
    ((TextView)container.findViewById(R.id.answer_text)).setText(description);

    return inflater.inflate(R.layout.faq_fragment, container, false);
}


应用程式当机,我收到错误讯息:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference

最佳答案

您需要先膨胀视图,然后再使用它。

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.faq_fragment, container, false);
    ((TextView)view .findViewById(R.id.question_text)).setText(title);
    ((TextView)view .findViewById(R.id.answer_text)).setText(description);

    return view;
}

10-07 19:33
查看更多