searchView空指针异常
程序员文章站
2024-03-07 19:40:15
...
在为SearchView加监听事件时出现以下问题
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method ‘void android.support.v7.widget.SearchView.setOnQueryTextListener(android.support.v7.widget.SearchView$OnQueryTextListener)’ on a null object reference
1.问题原因: 我在onCreate方法中获取了searchView,并为他设置了监听
searchView = (SearchView) findViewById(R.id.action_search);
searchView.setOnQueryTextListener(new OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
if (!query.equals("") && !query.equals(null)) {
searchContent(query);
} else {
Toast.makeText(MainActivity.this,"未输入",Toast.LENGTH_LONG).show();
}
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});
2、解决:在actionBar或者toolBar中的onCreateOptionsMenu方法中获取searchView并设置监听
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_search,menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchView mSearchView = (SearchView) MenuItemCompat.getActionView(searchItem);
mSearchView.setIconifiedByDefault(true);
mSearchView.setImeOptions(EditorInfo.IME_ACTION_SEARCH);
mSearchView.setMaxWidth(800);
mSearchView.setOnQueryTextListener(new OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
if (!query.equals("") && !query.equals(null)) {
searchContent(query);
} else {
Toast.makeText(MainActivity.this,"未输入",Toast.LENGTH_LONG).show();
}
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});
return true;
}
推荐阅读
-
searchView空指针异常
-
解决MyEclipse10.7部署报错抛空指针异常问题的方法
-
Java中避免空指针异常的方法
-
实例化JFileChooser对象报空指针异常问题的解决办法
-
Android中利用NetworkInfo判断网络状态时出现空指针(NullPointerException)问题的解决方法
-
Java中避免空指针异常的方法
-
java 避免出现NullPointerException(空指针)的方法总结
-
Android中利用NetworkInfo判断网络状态时出现空指针(NullPointerException)问题的解决方法
-
java 避免出现NullPointerException(空指针)的方法总结
-
在Java8中如何风骚走位的避开空指针异常