大家下午好,
我已经成功创建了一个工作警报对话框,如下面的链接所示:
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

10-07 19:13
查看更多