我在尝试拨打' getText'时收到此错误在if语句中的TextView上。奇怪的是,当我在if语句之前的Log语句中对同一视图调用相同的方法时,不会弹出任何错误。我已经看过很多其他类似的问题了,我试过清理和重建我的版本都无济于事。当我尝试运行它时,出现的错误是错误:布尔值无法解除引用。 TextView不是原始类型,所以我相信我应该能够在它上面调用一个方法。我有以下方法,如果需要任何其他代码,请告诉我。
private void doSearch(Cursor query) {
// get a Cursor, prepare the ListAdapter
// and set it
Cursor c = query;
startManagingCursor(c);
String[] from = new String[] {"QUANTITY", "_id"};
int[] to = new int[] {android.R.id.text1};
SimpleCursorAdapter cursorAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, c, from, to);
mListView.setAdapter(cursorAdapter);
Log.e("doSearch method:", "has been called");
mListView.setOnItemClickListener(
new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, log with the TextView text
Log.e("doSearch method:", "Answer: " + ((TextView) view).getText()); //no error here
if(cMap.containsKey((TextView) view).getText()){ //error here
//start new activity
} else if (chMap.containsKey((TextView) view).getText()){//error here
//start new activity
} else if (aMap.containsKey((TextView) view).getText()){//error here
//start new activity
}
}
});
}
非常感谢您的帮助。
答案 0 :(得分:2)
您正在将View作为参数传递给containsKey:
cMap.containsKey((TextView) view).getText()
应该是
cMap.containsKey(((TextView) view).getText())
你得到的错误基本上是说cMap.containsKey(view).getText()不是布尔值