2012-06-19 43 views
0

我不明白爲什麼我在設置文本視圖字符串時收到NPE。我使用這些全部,但爲什麼NPE onItemClick()方法?Android:setText onItemClick NPE

Thnx爲您提供幫助。

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!! 
     . . . 
} 

回答

1

99%'title'對象爲null,因爲它在onItemClick方法中傳入的'view'對象中不存在。

嘗試將view.findViewById更改爲findViewById,假設活動中存在textview R.id.navigationTitle。

+0

thnx +1讓我思考。 [請參閱下面的答案](http://stackoverflow.com/a/11109111/742030) – CelticParser

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); 
     . . . 
} 
+0

thnx + 1讓我思考。 [見我的答案](http://stackoverflow.com/a/11109111/742030) – CelticParser

1

日Thnx爲@imran汗& @azgolfer讓我思考:

我改變:

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

發給:

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

現在它不是空!