我正在尝试在我的应用程序中访问EditText
(v7)的SearchView
字段,但我总是以空指针异常结束。
到目前为止,我已经尝试了一个解决方案并尝试使用android:id/search_plate
,R.id.search_plate
,R.id.search_src_text
和android:id/search_src_text
来访问EditView,但都是徒劳的。
代码:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.frag_menu_items, menu);
MenuItem menuItem = menu.findItem(R.id.action_search);
searchView = (SearchView) MenuItemCompat.getActionView(menuItem);
searchPlateId = searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null);
searchPlate = (EditText) searchView.findViewById(searchPlateId);
searchPlate.setImeOptions(EditorInfo.IME_ACTION_SEARCH);
searchPlate.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
ToastClass.getInstance().showCustomMsg(getActivity(),searchPlate.getText().toString());
}
return false;
}
});
//searchView.setOnQueryTextListener(this);
MenuItemCompat.setOnActionExpandListener(menuItem, new MenuItemCompat.OnActionExpandListener() {
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
// Do something when collapsed
// Toast.makeText(getActivity(),"collapsed",Toast.LENGTH_LONG).show();
searchMeta.setVisibility(View.GONE);
return true; // Return true to collapse action view
}
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
// Do something when expanded
// Toast.makeText(getActivity(),"expanded",Toast.LENGTH_LONG).show();
searchMeta.setVisibility(View.VISIBLE);
return true; // Return true to expand action view
}
});
super.onCreateOptionsMenu(menu,inflater);
}
答案 0 :(得分:3)
我正在尝试在我的应用程序中访问
EditText
(v7)的SearchView
字段。
您可以使用Java代码执行此操作。
android.support.v7.widget.SearchView
:
EditText editText = (EditText) searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);
android.widget.SearchView
:
EditText editText = (EditText) searchView.findViewById(android.R.id.search_src_text);
答案 1 :(得分:0)
试试这个
./snort -v