这是我的代码
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;
}
});
}
}
我用他的Android模拟器和Eclipse,我不知道为什么,但是当我点击一次键时,代码 吐司将执行两次。 我的代码有问题吗?
答案 0 :(得分:11)
我刚回答了一个非常相似的问题(here)。问题是您是在KeyEvent.ACTION_DOWN
和KeyEvent.ACTION_UP
上激活的。您应该只在KeyEvent.getAction() == KeyEvent.ACTION_UP