[英]Android - Issue with Dialog Boxes/ clicking of buttons
我有一个游戏,用户在画布上四处移动,并且在这种情况下可以与某项互动,一只狗会触发战斗。
这会加载一个对话框,使用户可以选择战斗还是逃跑。 用户单击“打架”,然后弹出另一个对话框,其中显示一些文本(您的详细信息和狗的详细信息),并且在该文本下方有一个攻击按钮。
当您单击“附加”按钮时,会发生一些事情(不是不相关的事情),这实际上意味着用户和狗的详细信息会发生变化(例如DogHP降至18)。
所以我的问题是:
请查看下面的一些代码片段,任何想法或指导将不胜感激:
代码段:
void Fight()
{
final int DogHP = 25;
final int DogAtk = 15;
final int DogDef = 5;
final int DogSpeed = 20;
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(context.getText(R.string.monster_dog_title));
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.fight, null);
builder.setView(view);
final AlertDialog DogBattle = builder.create();
View FightBtn = view.findViewById(R.id.dog_fight);
FightBtn.setOnClickListener(new OnClickListener()
{
boolean attacked = false;
@Override
public void onClick(View clicked)
{
if(clicked.getId() == R.id.dog_fight)
{
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(context.getText(R.string.monster_fight));
builder.setMessage("Your Current Battle Details:\n" + "HP = " + UserHP + " Def = " + UserDef + " Atk = " + UserAtk + "\n\n" + "Your Enemy:\n" + "HP = " + DogHP + " Def = " + DogDef + " Atk = " + DogAtk);
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.monsterbattle, null);
builder.setView(view);
final AlertDialog BattleRun = builder.create();
BattleRun.show();
View LeaveBattle = view.findViewById(R.id.Attack);
LeaveBattle.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View clicked)
{
if(clicked.getId() == R.id.Attack)
{
// SOME CODE GOES HERE
}
}
});
}
}
});
}
在此先感谢您的帮助。
我没有尝试过,但是我相信对话框中文本字段的ID是android.R.id.custom,因此您应该可以执行以下操作:
((TextView)dialog.findViewById(android.R.id.custom)).setText(newTextToShow)
不过,更好的方法可能是使用自定义对话框。
我决定完全废弃上面的想法,因为在对话框中发生了太多事情,最终创建了一个新类,同时使用对象而不是变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.