私はSnakeのサンプルコードをいじり回しており、トレーニングのためにこれを変更しようとしています。できれば、Androidの動作についての理解を深めることができます。
これまでに、以下のように2つのボタンと対応する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」と同じジョブを実行するカスタムの画面上のボタンを用意する必要があります。私のXperiaX10iにはDPADが付属していません。それはその一部です;-P
私は本当に正しい方向へのいくつかの指針をいただければ幸いです。ご想像のとおり、私はこれにかなり慣れていません。
よろしくお願いします