1. ホーム
  2. android

[解決済み] 編集テキストを文字列に変換

2022-02-08 22:34:14

質問

アンドロイドで Edittext を文字列に変換します。その toString() メソッドではうまくいきません。playerNameをプリントアウトするとNULLになってしまいます。他にeditxtを文字列にする方法はないでしょうか?

AlertDialog.Builder alert = new AlertDialog.Builder(this);
        alert.setMessage("Your Name");
        final EditText input = new EditText(this);
        alert.setView(input);
        alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {
                playerName = input.getText().toString();
            }
        });
        alert.show();

解決方法は?

アラートダイアログは正常に見えますが、おそらくエラーは残りのコードにあります。ダイアログのshow()でvar playerNameを使用することができないことに留意してください。

      static Handler handler = new Handler();

      [.......]

      public void onClick(DialogInterface dialog, int whichButton) {
            playerName = input.getText().toString();
            handler.post(set_playername);

      }

      [.......]

     static Runnable set_playername = new Runnable(){
            @Override
            public void run() {
        //printout your variable playerName wherever you want
    }
  };

を編集して明確にします。

AlertDialog.Builder alert = new AlertDialog.Builder(this);
    alert.setMessage("Your Name");
    final EditText input = new EditText(this);
    alert.setView(input);
    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            playerName = input.getText().toString();
            //call a unction/void which is using the public var playerName
        }
    });
    alert.show();
    // the variable playerName is NULL at this point