我正在制作具有多种选择的叙事游戏,所以我必须使用嵌套开关。
我正在使用一个单选对话框对话框,我想做这样的事情:
switch(i){
case 0: response1;
switch(i){
case 0: response 2
switch(i){
case 0: response 3
}
}
}
但是问题是切换键(i),第一次切换后我不知道如何更改它:/
这是我的代码:
listChoices = new String[]{"Answer1,answer2,answer3"};
Button btn = (Button) findViewById(R.id.btnChoice);
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Text to choose
AlertDialog.Builder mBuilder= new AlertDialog.Builder(ChapTest.this);
mBuilder.setTitle("Your choice:");
mBuilder.setSingleChoiceItems(listChoices, -1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface,int i) {
//fonction list text
userInput.setText(listChoices[i]);
// Fonction message
ResponseMessage message = new ResponseMessage(userInput.getText().toString(), 1);
responseMessageList.add(message);
switch (i) {
case 0:
ResponseMessage message2 = new ResponseMessage("Désolé " + prenom + ", tu tiens le coup?", 2);
responseMessageList.add(message2);
listChoices = new String[]{"answer4,answer5,answer6 "};
switch (i) {
case 0:
ResponseMessage message6 = new ResponseMessage("Test", 2);
responseMessageList.add(message6);
break;
}
break;
答案 0 :(得分:0)
在您的代码中,您永远不会在第二个“ list Choices = new ...”之后重新分配“ i”变量,因此执行“ switch(i)”绝对没有用,因为您处于先前的“情况0: ...”的“ i”,因此该变量在所有情况下都保持不变。
如果您知道嵌套事物的“堆栈”有多深,则可以使用“ i”以外的其他变量名称,例如“ j”,“ k”等...
listChoices = new....
mBuilder.setSingleChoiceItems(listChoices, -1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
...use "i"...
list Choices = new...
mBuilder.setSingleChoiceItems(listChoices, -1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int j) {
...use "j"...
}
}
答案 1 :(得分:0)
switch (i) {
case 0:
ResponseMessage message2 = new ResponseMessage("Désolé " + prenom + ", tu tiens le coup?", 2);
responseMessageList.add(message2);
listChoices = new String[]{"Non j'ai pas envie de le perdre", "J'ai envie qu'il revienne Papa "};
mBuilder.setSingleChoiceItems(listChoices, -1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface,int j) {
switch (i) {
case 0:
ResponseMessage message6 = new ResponseMessage("Test", 2);
responseMessageList.add(message6);
break;
}
}
类似的东西吗?