我一直在尝试修改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
我真的很感激一些指向正确方向的提示。正如你可能已经猜到的,我对此还比较新。感谢大家的帮助。