【发布时间】:2017-08-25 04:52:18
【问题描述】:
我有一个非常简短的问题。我有一个带有搜索按钮和列表视图的 xml 布局,还有一个活动。
XLM:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">
<SearchView android:id="@+id/searchView"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<ListView android:id="@+id/locationList"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
</ListView>
</LinearLayout>
活动
public class MainActivity extends AppCompatActivity implements SearchView.OnQueryTextListener {
private SearchView searchView;
private ListView locationListView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
searchView = (SearchView) findViewById(R.id.searchView);
locationListView = (ListView) findViewById( R.id.locationList );
}
searchView = (SearchView) findViewById(R.id.searchView); 行只是给出了空指针异常。我检查将其更改为EditText,它可以工作。有人知道为什么它不起作用吗?
谢谢
【问题讨论】:
-
在你找到
SearchView的这一行不能给你NullPointerException,因为你没有在那里使用指针。它可能会给你一个空的searchView,但不是例外。请仔细查看堆栈跟踪。 -
能否在活动中显示
SearchView导入?它可以从支持库中导入。如果是这种情况,您的XML也应该如此。另外,发布堆栈跟踪。 -
报错基本是
android.widget.SearchViewcannot be cast toandroid.support.v7.widget.SearchView,所以我只是将importandroid.v7.widget.SearchView;改为importandroid.widget.SearchView;。但感谢您的支持。