Android View.OnKeyListener:单击一次,执行两次

lok*_*k4u 5 android view listener scrollview

可能重复:
public boolean onKey()调用两次?

这是我的代码

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;
        }
    });
    }
}
Run Code Online (Sandbox Code Playgroud)

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

dmo*_*mon 11

我刚刚回答了一个非常相似的问题(这里).问题是你正在激活KeyEvent.ACTION_DOWNKeyEvent.ACTION_UP.你应该只执行你的代码KeyEvent.getAction() == KeyEvent.ACTION_UP