3

私はAndroid開発にまったく慣れていません。

レイアウトにaがあり、クラスTextViewにアクセスしようとするとaがスローされます。次のように TextView にアクセスしています...TextViewFragmentNullPointerException

TextView textView = (TextView) view.findViewById(R.id.quotes);

私は何を間違っていますか?

SOでこれに関する他の回答を見ましたが、解決策が見つかりませんでした...

関連コード

quotes_details_fragment.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/quotes"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="@string/quotes_details"
        android:textSize="24sp" />

</RelativeLayout>

引用Fragment.java

public class QuotesFragment extends Fragment {

    public QuotesFragment() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view =  inflater.inflate(R.layout.quotes_details_fragment, container, false);
        TextView textView = (TextView) view.findViewById(R.id.quotes); // NullPointerException
        return view;
    }

}

(メインのアクティビティ クラスは、 を使用して関連するフラグメントのみを呼び出していますFragmentTransaction)

いつもお世話になっております。

4

1 に答える 1

4

この LayoutInflater を onCreateView(..); に追加します。

 LayoutInflater lf = getActivity().getLayoutInflater();   

このように:

 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // Inflate the layout for this fragment

        LayoutInflater lf = getActivity().getLayoutInflater();   

        View view =  lf.inflate(R.layout.quotes_details_fragment, container, false);
        TextView textView = (TextView) view.findViewById(R.id.quotes); // 
        return view;
    }
于 2013-01-24T06:37:40.777 に答える