0

テキスト ビュー文字列の設定中に NPE が発生する理由がわかりません。私はこれらをいたるところで使用していますが、なぜこの onItemClick() メソッドに NPE があるのでしょうか??

お世話になりました。

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        . . .
        TextView title = (TextView) view.findViewById(R.id.navigationTitle);
        String navTitle = ((TextView) view.findViewById(R.id.listLabel)).getText().toString();
        title.setText(navTitle);//<--NPE AT THIS LINE - NO OTHER INFO FROM LOGCAT THAT IS FROM MY CLASSES!!
        . . . 
}
4

3 に答える 3

1

@imran khan と @azgolfer に感謝します。

私が変更され:

TextView title = (TextView) view.findViewById(R.id.navigationTitle);

に:

TextView title = (TextView) getActivity().findViewById(R.id.navigationTitle);

そして今、それはnullではありません!!

于 2012-06-19T20:44:12.030 に答える
1

onItemClick メソッドで渡される「ビュー」オブジェクトに存在しないため、99% の「タイトル」オブジェクトは null です。

textview R.id.navigationTitle がアクティビティに存在すると仮定して、view.findViewById を単に findViewById に変更してみてください。

于 2012-06-19T20:26:50.913 に答える
1

TextView titleは null なので、navigationTitle がメインのアクティビティ レイアウトにある場合は、これを試してください。

 TextView title = (TextView)findViewById(R.id.navigationTitle);
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        . . .
        String navTitle = ((TextView) view.findViewById(R.id.listLabel)).getText().toString();
        title.setText(navTitle);
        . . . 
}
于 2012-06-19T20:28:38.610 に答える