Edittext to String - PullRequest
       5

Edittext to String

4 голосов
/ 10 мая 2011

На Android я пытаюсь превратить Edittext в строку. Метод toString() не работает, playerName имеет значение null, когда я его распечатываю. Есть ли другие способы превратить текст редактирования в строку?

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();

Ответы [ 5 ]

7 голосов
/ 10 мая 2011

alerttdialog выглядит нормально, но, возможно, ошибка находится в остальной части кода.Вы должны иметь в виду, что вы не можете использовать var playerName, а просто показывает show () диалогового окна. Если вы хотите распечатать имя, вы должны сделать это с исполняемым файлом, который вы вызываете здесь:

      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
5 голосов
/ 10 мая 2011

editText.getText().toString() дает вам строку

3 голосов
/ 10 мая 2011

Вот как вы получаете текст из EditText

et = (EditText)findViewById(R.id.resource_id_of_edittext);
String text = et.getText().toString();`
2 голосов
/ 30 мая 2014
String mystring=input.getText().toString();
0 голосов
/ 10 мая 2011

Если playerName объявлено как String, вам не нужно разыгрывать его или что-либо еще.Метод getText дает вам CharSequence, который вы можете использовать как String.

. Проблема в том, что вы создаете переменную input "с нуля", поэтому она не будет ссылатьсяк любому существующему View.Вы должны сделать что-то вроде:

EditText input = findViewById(R.id.player);

И тогда вы можете:

playerName = input.getText();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...