警告ダイアログに複数行のテキストを表示する必要があります。複数のsetMessage()メソッドを使用する場合、以下に示すように、最後のsetMessageのみが表示されます。
final AlertDialog alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle("Statistics:");
alertDialog.setMessage("No. of attempts: " + counter);
alertDialog.setMessage("No. of wins: " + counterpos);
alertDialog.setMessage("No. of losses: " + counterneg);
ダイアログでこれらのそれぞれに新しい行を作成する方法はありますか? System.print.out()で\ nを使用するのと同様です。方法。
ありがとう!
このようなことができます
String alert1 = "No. of attempts: " + counter;
String alert2 = "No. of wins: " + counterpos;
String alert3 = "No. of losses: " + counterneg;
alertDialog.setMessage(alert1 +"\n"+ alert2 +"\n"+ alert3);
表示したいすべての文字列を1つ作成し、改行する場所に「\ n」を追加できます。
alertDialog.setMessage("No. of attempts: " + counter + "\n" +
"No. of wins: " + counterpos + "\n" +
"No. of losses: " + counterneg);
または、StringBuilderを使用することをお勧めします。
StringBuilder sb = new StringBuilder();
sb.append("No. of attempts: " + counter);
sb.append("\n");
sb.append("No. of wins: " + counterpos);
sb.append("\n");
sb.append("No. of losses: " + counterneg);
alertDialog.setMessage(sb.toString());
そして、それを行う最善の方法は、静的テキストを(strings.xmlファイル内の)文字列リソースに抽出することです。 %d(intではなく文字列を挿入する場合は%s)を使用して、適切な場所で動的な値を取得します。
<string name="alert_message">No. of attempts: %1$d\nNo. of wins: %2$d\nNo. of losses: %3$d</string>
そして、コードで:
String message = getString(R.string.alert_message, counter, counterpos, counterneg);
alertDialog.setMessage(message);
また、strings.xmlファイルに改行を直接挿入することもできます。
<string name="my_string_text">This would revert your progress.\n\n Are you sure you want to proceed?</string>
Kotlinは次の方法でソリューションを簡素化します。
次のように:
"AlertDialog.BuilderこのBuilderオブジェクトは、設定メソッドへの呼び出しのチェーンを可能にします"( https://developer.Android.com/reference/Android/app/AlertDialog.Builder )
fun alertDemo() {
var counter: Int = 5
var counterpos: Int = 2
var counterneg: Int = 3
val builder = AlertDialog.Builder(this)
.setTitle("Statistics:")
.setMessage("""
|number of
|
|attempts: $counter
|wins: $counterpos
|losses: $counterneg
""".trimMargin())
.show()
}
結果のスクリーンショットを用意しましたが、ここで新しいので、スクリーンショットのアップロードはより高いレベルのコミュニティピアに制限される可能性があることを知ったようです。または私は何かを見逃しましたか?自分自身を(おそらくだけでなく)啓発してくれてありがとう:)
スクリーンショットは、バーを表示せずにニース形式で提供されます。
PS:ミニマリストの場合、連鎖により、冗長な「val builder = "