android-setOnClickListener;
|
我一直在搞弄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
我真的很感谢在正确方向上的一些指导。您可能已经猜到我对此很陌生。
在此先感谢大家
没有找到相关结果
已邀请:
3 个回复
缔恃钨
吐兄
方法中的
,从现有代码中复制适当的正文(例如
)。 顺便说一句,以像素为单位指定按钮尺寸被认为是较差的做法。这对于打算在像素密度和屏幕尺寸可能完全不同的设备上运行的代码而言效果不佳。最好让按钮根据它们所包含的内容自行调整大小。
凸晴
之后,您可以使用: