gpt4 book ai didi

android - setOnClickListener;

转载 作者:太空宇宙 更新时间:2023-11-03 13:36:47 25 4
gpt4 key购买 nike

我一直在摆弄 Snake示例代码,我正在尝试修改它以进行培训,并希望增加对 Android 工作原理的理解。

到目前为止,我已经添加了两个按钮 + 相应的 setOnClickListener 代码,如下所示。

snake_layout.xml:

          <Button
android:layout_height="39px"
android:layout_width="55px"
android:layout_marginLeft="15px"
android:text="Left"
android:id="@+id/left_button" />

<Button
android:layout_height="39px"
android:layout_width="55px"
android:layout_marginLeft="240px"
android:text="Right"
android:id="@+id/right_button" />

Snake.java:

.
.
.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// No Title bar
requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.snake_layout);

final Button leftButton = (Button) findViewById(R.id.left_button);
leftButton.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v)
{
//perform action
}
});

final Button rightButton = (Button) findViewById(R.id.right_button);
rightButton.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v)
{
//perform action
}
});
.
.
.

当我尝试一种简单的方法(例如“finish())”时,这两个按钮都会出现在它们应该出现的位置并起作用。

现在,我想做的是让这些按钮触发下面的代码,在 SnakeView.java 中:

        if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) {
if (mDirection != EAST) {
mNextDirection = WEST;
}
return (true);
}

if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) {
if (mDirection != WEST) {
mNextDirection = EAST;
}
return (true);
}

明确地说,我需要让我的自定义屏幕按钮执行与当前代码中的“KEYCODE_DPAD_RIGHT”和“KEYCODE_DPAD_LEFT”相同的工作。我的 Xperia X10i 没有随附 DPAD,那是它的一部分;-P

我真的很感激一些正确方向的指示。正如您可能已经猜到的那样,我对此还很陌生..

先谢谢大家

最佳答案

在这里查看:

Throwing/Simulating KeyStrokes programatically

基本逻辑隐藏在背后:

private void doInjectKeyEvent(KeyEvent kEvent) {
try {
/* Inject the KeyEvent to the Window-Manager. */
windowManager.injectKeyEvent(kEvent.isDown(), kEvent.getKeyCode(),
kEvent.getRepeatCount(), kEvent.getDownTime(),
kEvent.getEventTime(), true);
} catch (DeadObjectException e) {
e.printStackTrace();
}
}

关于android - setOnClickListener;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6139891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com