2012-06-19 4 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% «название» объект имеет нулевое значение, так как он не существует в «вид» объекта, который передается в по методу onItemClick.

Попробуйте изменить view.findViewById просто findViewById, предполагая, что в действии существует текст R.id.navigationTitle.

+0

thnx +1 за то, что заставил меня думать. [См. Мой ответ ниже] (http://stackoverflow.com/a/11109111/742030) – CelticParser

1

TextView title равна нулю, так попробуйте это, если 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); 

И теперь это не пусто!

 Смежные вопросы

  • Нет связанных вопросов^_^