我正在开发一款棋盘游戏应用程序(类似于国际象棋)。我有活动GameBoardActivity,它监听GridView上的点击,并在每次点击时调用类Game中的函数来处理应该发生的事情。
在类中,游戏是关于片段在哪里的数据以及处理片段移动的方法Move(int xFrom, int yFrom, int xTo, int yTo)
。
对于用户可以指定的某些动作(例如,xFrom,yFrom应该转到xTo,yTo)我希望为它们提供两个选项之间的选择。你可以想象,一种选择是正常去那里,而另一种选择是去那里作为一个转变的作品。为此,我想显示一个自定义对话框,显示用户可以选择的两个选项。
我的自定义Dialog类如下:
public class CustomDialog extends Dialog implements View.OnClickListener{
Context mcontext;
Button button1;
Button button2;
int choice; //holds value of user's choice
public CustomDialog(Context context) {
super(context);
mcontext = context;
button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
choice = 0; //no choice yet
}
public void setLayout(){
this.setContentView(R.layout.custom_dialog);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.button1:
choice = 1;
break;
case R.id.button2:
choice = 2;
break;
}
dismiss();
}
}
我不清楚的是如何将有关用户选择的信息传递回课程游戏。
非常感谢任何帮助。
答案 0 :(得分:1)
通过对话框的构造函数保存对父Activity的引用:
private final MyActivity mCaller;
public CustomDialog(MyActivity caller) {
super(caller);
mCaller = caller;
//.......
}
通过调用其方法将值传递给调用活动:
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.button1:
mCaller.setChoice(1);
break;
case R.id.button2:
mCaller.setChoice(2);
break;
}
dismiss();
}
答案 1 :(得分:0)
创建一个用于存储按钮操作的bean类.... 单击事件将其存储在bean中 在游戏类中,您可以从bean类
访问按钮的操作值