大家下午好,
我已经成功创建了一个工作警报对话框,如下面的链接所示:
http://i.stack.imgur.com/XR1Pm.png
后来我认为,如果将计算机的信息移到第一位玩家的信息权处会更好(如下所示:http://i.stack.imgur.com/rj3M6.png)。这将增加消息的可读性,并且通常看起来更好。
我已经在互联网上搜索了这样做的方法,但是找不到解决方案。
谁能告诉我如何有效达到图2所示的效果?感谢您的建议。
这是我的dialogalert代码(不会被编译,但主要使用SharedPreferences中的数据,strings.xml中的字符串,应该理解):
private void showMatchResults(int[] p1results, int[] p2results) {
AlertDialog.Builder aldb = new AlertDialog.Builder(this);
aldb.setTitle(getString(R.string.match_summary));
aldb
.setMessage(matchResults_message(p1results, p2results))
.setCancelable(false)
.setNeutralButton(getString(R.string.ok), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alertDialog = aldb.create();
alertDialog.show();
}
private String matchResults_message(int[] p1results, int[] p2results) {
StringBuilder sb = new StringBuilder();
sb.append(data.getString("player1", getApplicationContext().getString(R.string.player1)));
int[] results = new int[6];
System.arraycopy(p1results, 0, results, 0, p1results.length);
System.arraycopy(p2results, 0, results, p1results.length, p2results.length);
sb.append(System.getProperty("line.separator"));
for (int i = 0; i < results.length; i++) {
if (i == 3) {
sb.append(System.getProperty("line.separator"));
if (mode.equals("Two"))
sb.append(data.getString("player2", getApplicationContext().getString(R.string.player2)));
else sb.append(getString(R.string.computer) + " " + ComputerAI.getDifficulty(this));
sb.append(System.getProperty("line.separator"));
}
if (i == 0 || i == 3) sb.append(getString(R.string.wins));
else if (i == 1 || i == 4) sb.append(getString(R.string.draws));
else sb.append(getString(R.string.loses));
sb.append(" "+results[i]);
sb.append(System.getProperty("line.separator"));
}
return sb.toString();
}
最佳答案
您将必须使用两个LinearLayouts创建一个自定义布局,将主布局权重总和设置为2
,对于其他布局,请将layout_weight的总和设置为1
。在每个TextView
(总共2个LinearLayout
)中放置一个TextView
。这是在AlertDialog
中使用自定义布局的方法:
How to implement a custom AlertDialog View