我已使用此代码在ActionbarSherlock中放置可折叠视图(EditText):
public boolean onCreateOptionsMenu(Menu menu) { getSupportMenuInflater().inflate(R.menu.activity_main, menu); //Used to put dark icons on light action bar boolean islight = false; menu.add("Search") .setIcon(islight ? R.drawable.ic_search_inverse : R.drawable.ic_search) .setActionVIEw(R.layout.collapsible_edittext) .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_ColLAPSE_ACTION_VIEW); return true;}
当我尝试在视图上通过其ID设置setonEditorActionListener时,应用程序崩溃:
EditText editText = (EditText) findVIEwByID(R.ID.search);editText.setonEditorActionListener(new OnEditorActionListener() { @OverrIDe public boolean onEditorAction(TextVIEw v, int actionID, KeyEvent event) { if (actionID == EditorInfo.IME_ACTION_SEARCH) { performSearch(v.getText().toString(), 3); return true; } return false; }});
我需要在Actionbar中具有SearchFIEld并在用户按下键盘上的“搜索”键时执行搜索,但是我不知道如何将setonEditorActionListener绑定到视图.
解决方法:
我假设R.ID.search在您的R.layout.collapsible_edittext布局内?您在哪里调用findVIEwByID()?例如,您是在onCreate()还是onResume()中调用它?您确定此时已创建菜单吗?
我建议将其包含在onCreateOptionsMenu()中.这样的事情可能会起作用:
@OverrIDepublic boolean onCreateOptionsMenu(Menu menu) { getSupportMenuInflater().inflate(R.menu.activity_main, menu); boolean islight = false; int menuItemID = menu.add("Search") .setIcon(islight ? R.drawable.ic_search_inverse : R.drawable.ic_search) .setActionVIEw(R.layout.collapsible_edittext) .setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_ColLAPSE_ACTION_VIEW) .getItemID(); EditText editText = (EditText) menu.findItem(menuItemID).getActionVIEw().findVIEwByID(R.ID.search); editText.setonEditorActionListener(...);}
另一个选择是在调用MenuItem.setActionVIEw(actionVIEw)之前,扩大视图并附加侦听器.
(顺便说一句,如果您希望人们确定崩溃原因,则包含异常和堆栈跟踪会很有帮助.)
总结以上是内存溢出为你收集整理的android-如何在ActionBarSherlock中将“ setOnEditorActionListener”设置为EditText?全部内容,希望文章能够帮你解决android-如何在ActionBarSherlock中将“ setOnEditorActionListener”设置为EditText?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)