【问题标题】:Android View.OnKeyListener: click once, execute twice [duplicate]Android View.OnKeyListener:单击一次,执行两次[重复]
【发布时间】:2012-05-01 02:16:06
【问题描述】:

可能重复:
public boolean onKey() called twice?

这是我的代码

public class TestKeyActivity extends Activity {

private int i=1;
private ScrollView sv;
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


    sv=(ScrollView) this.findViewById(R.id.read_scrollView);

    sv.setOnKeyListener(new View.OnKeyListener() {

        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) {

        Toast.makeText(TestKeyActivity.this, "what is wrong!!!!"+(i++), 2).show();
            return true;
            }
            return false;
        }
    });
    }
}

我用他的安卓模拟器和Eclipse,不知道为什么,但是当我点击一次键时,代码 of toast 将执行两次。 我的代码有问题吗?

【问题讨论】:

    标签: android view listener scrollview


    【解决方案1】:

    我刚刚回答了一个非常相似的问题 (here)。问题是您在KeyEvent.ACTION_DOWNKeyEvent.ACTION_UP 上激活。你应该只在KeyEvent.getAction() == KeyEvent.ACTION_UP

    时执行你的代码

    【讨论】:

    • 是的!它相似但不一样。我的问题是 OnKeyListener ,它不会有 KeyEvent.ACTION_DOWN 和 KeyEvent.ACTION_UP 这种问题。谢谢 dmon。你有这样的分数,酷!
    • 我可以用代码控制这个吗:如果我点击这个键并且在 1 秒内这个键会被锁定?反正有吗
    • 嗯,你想达到什么目的?
    • 嗨,dmon,我试试你的建议。是的,你是对的。它可以工作。我应该切换 KeyEvent.ACTION_DOWN 和 KeyEvent.ACTION_UP thks
    猜你喜欢
    • 1970-01-01
    • 2016-09-05
    • 1970-01-01
    • 2013-11-12
    • 1970-01-01
    • 2019-03-07
    • 2019-05-28
    • 2013-01-30
    • 1970-01-01
    相关资源
    最近更新 更多