android: 历史编辑文本

标签 android android-widget


第一个总结:

class A extends AutoCompleteTextView {
   public A() {
      setOnKeyListner( ... new OnKeyLisnter() ... ); //listener 1
   }
}
A obj;
obj.setOnKeyListener( ... new OnKeyListner() ... ); //listner 2

是否可以同时调用两个监听器?现在我只收到来自听众 2 的消息。


我正在尝试使用从 AutoCompleteTextView 派生的历史记录来构建编辑文本。该类有一个 ArrayAdapter,它会在按下回车键时自行更新。到目前为止,一切都很好。但是当从这个类创建的对象想要做的不仅仅是将文本添加到数据库时,我需要使用另一个 onKeyListener。如果这样做,则不会调用原始监听器。有没有办法在按下回车键时让两者都被调用?

class HistoryEditText extends AutoCompleteTextView {
    ArrayAdapter<String> adapter;
    public HistoryEditText(Context ctx) {
        super(ctx);
        setMaxLines(1);
        setOnKeyListener(new aCommand());
        List<String> myList = new LinkedList<String>();
        adapter = new ArrayAdapter<String>(ctx,R.layout.lvtext, myList);
        setAdapter(adapter);
    }
    private class aCommand implements OnKeyListener {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
                    (keyCode == KeyEvent.KEYCODE_ENTER)) {
                String str = getText().toString();
                setText(" ");
                adapter.add(str);
                adapter.notifyDataSetChanged();
                return true;
            }
            return false;
        }
    }
}

其他地方:

   HistoryEditText cmdField = new HistoryEditText(ctx);
   cmdField.setOnKeyListener(... another listener ... )

我尝试在其中一个监听器中返回 false 但没有成功。此外,我不想使用接口(interface)将两个监听器合并为一个。 谢谢

最佳答案

此处的类似问题可能会有所帮助。基本上总结就是不行,不行。

Android - Two onClick listeners and one button

他使用了一些肮脏的黑客来解决它,但他几乎做了你不想做的事情。

关于android: 历史编辑文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10726384/

相关文章:

java - 如何切换到另一个 Activity 以及更改该 Activity 中的 fragment ?

java - Android:加快 Activity 之间的共享元素转换

Android:Widget 占据太多位置

android - 如何在服务中获取我的应用程序的 widgetID 和 ComponentName

android - 理解 "setComponentEnabledSettings"的 onEnabled/onDisabled 方法

android - 在应用安装时添加 Android 小部件

java - 如何解决时间戳java + firestore问题?

java - 有没有人有在渲染器类之外绘制对象的示例?

android - 如何在旧版 Android 上加载分辨率的特定布局

android - 从 onUpdate 更改小部件的图标