我有一个游戏,用户在画布上来回移动,可与项目在这种情况下相互作用,触发战斗狗的点击。Android的 - 问题与对话框/按钮
这加载了一个对话框,让用户打或者逃跑的选项。用户点击战斗,然后弹出另一个对话框,这将显示一些文本(您的详细信息和狗的详细信息),并在该文本下方有一个攻击按钮。
当你点击连接按钮几件事情发生(不relvent),这实质上意味着用户和狗的细节变化(例如DogHP下降到18)。
所以我的问题是:
- 我加载了动态信息“狗惠普的第一个对话框。攻击键点击
- 后,这些信息会改变。
- 因此,我需要使用builder.setMessage()
- (例如,)将当前显示的新信息更新为第一个对话框。原单HP = 20 ...攻击键点击...新的HP = 10
请看到一些代码片断如下,任何意见或指导做好将不胜感激:
代码段:
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
}
}
});
}
}
});
}
在此先感谢您的帮助。
你的问题是? – 2012-07-05 16:10:43
基本上,点击攻击按钮后,我加载的第一个对话框中有动态信息'Dog HP',然后该信息被更改。因此,我需要更新与我目前使用builder.setMessage() – 2012-07-05 16:15:59