无法解决方法' getText()'在TextView /错误:布尔值无法解除引用?

时间:2016-07-11 16:04:15

标签: java android

我在尝试拨打' 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
                        }


                    }
                });
    }

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您正在将View作为参数传递给containsKey:

cMap.containsKey((TextView) view).getText()

应该是

cMap.containsKey(((TextView) view).getText())

你得到的错误基本上是说cMap.containsKey(view).getText()不是布尔值