Android View.OnKeyListener : click once, 执行两次

标签 android view listener scrollview

<分区>

Possible Duplicate:
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,不知道为什么,点击一下按键,代码 toast 将执行两次。 我的代码有问题吗?

最佳答案

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

时执行你的代码

关于Android View.OnKeyListener : click once, 执行两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10392764/

相关文章:

ios - 在显示 contextMenu 时做一些事情

asp.net-mvc-3 - 在 ASP .NET MVC 3 中过滤索引 View ?

ruby-on-rails - 如何在 Rails 中格式化日期时间?

android - 在 Android 中跨 Activity 监听

java - 如何让 SimpleProperty 通知第一组听众?

java - Eclipse - 更改 string.xml 中的 API key

android - 通过 RemoteViews 设置按钮可绘制

Android 无法连接到相机服务

Android Sqlite 两行作为两列,枢轴?

java - JTree 'node title edited' 监听器