android-如何在ActionBarSherlock中将“ setOnEditorActionListener”设置为EditText?

android-如何在ActionBarSherlock中将“ setOnEditorActionListener”设置为EditText?,第1张

概述我已使用此代码在ActionBarSherlock中放置可折叠视图(EditText):publicbooleanonCreateOptionsMenu(Menumenu){getSupportMenuInflater().inflate(R.menu.activity_main,menu);//UsedtoputdarkiconsonlightactionbarbooleanisLight=false;m

我已使用此代码在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?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1075248.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存