

Android(Java)でアプリの更新を促すDialogを作成するために以下のコードを実装しております。

versionCodeはPackageInfoから取得したバージョン  
latest_versionはJsonから取得した最新バージョン

[code]

    AlertDialog.Builder UpdateDialog = new AlertDialog.Builder(MainActivity.this);
    UpdateDialog.setTitle("UPDATE!");
    UpdateDialog.setMessage(R.string.update + "\nYOUR VERSION : " + versionCode + "\nLATEST VERSION : " + latest_version);
    UpdateDialog.setIcon(R.mipmap.ic_launcher);
    UpdateDialog.setCancelable(false);
    UpdateDialog.setPositiveButton("UPDATE", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
            setState(PREFERENCE_BOOTED);
        }
    });
    UpdateDialog.create();
    UpdateDialog.show();
    
[/code]

するとDialogには

[code]

    UPDATE
    
    2131230759
    YOUR_VERSION : 1
    LATEST_VERSION : 3.1
    
[/code]

と出てきてしまいます。  
おそらく、R.stringを表示する際にうまくいってないようです。

もし解決方法をご存知の方がいらっしゃいましたら、ご教授のほどお願いいたします。


CC BY-SA 4.0
2017-06-02T08:54:32.213
35220
2023-12-02T11:08:56.123
2020-04-15T10:18:00.360
3060
23205
question
java android
R.string.** + string をするとR.string.**の部分に数字が出て来る問題


すいません。自己解決しました。

`getResources().getString(R.string.update)` するとintではなく、stringが取得できるようです。

**修正後のコード**

[code]

    AlertDialog.Builder UpdateDialog = new AlertDialog.Builder(MainActivity.this);
    //set title
    UpdateDialog.setTitle("UPDATE!");
    String update = getResources().getString(R.string.update);
    UpdateDialog.setMessage(update + "\nYOUR VERSION : " + versionName + "\nLATEST VERSION : " + latest_version);//set content
    UpdateDialog.setIcon(R.mipmap.ic_launcher);//set icon
    UpdateDialog.setCancelable(false);
    UpdateDialog.setPositiveButton("UPDATE", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
            download();
        }
    });
    UpdateDialog.create();
    UpdateDialog.show();
    
[/code]


CC BY-SA 4.0
2017-06-02T09:02:28.860
35221
2020-04-15T10:20:09.410
2020-04-15T10:20:09.410
3060
23205
35220
answer