Edittext to String

时间:2011-05-10 07:49:14

标签: android android-edittext

在Android上我试图将Edittext变为字符串。 toString()方法不起作用,当我打印出来时,playerName为null。有没有其他方法可以将edittext转换为字符串?

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 个答案:

答案 0 :(得分:7)

alertdialog看起来很好,但可能错误位于代码的其余部分。你必须记住,你不能在对话框的show()之前使用var playerName,如果你想打印出你应该用你在这里调用的runnable来做这个名字的名字:

      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

答案 1 :(得分:5)

editText.getText().toString()为您提供了一个字符串

答案 2 :(得分:3)

以下是如何从EditText中获取文本

et = (EditText)findViewById(R.id.resource_id_of_edittext);
String text = et.getText().toString();`

答案 3 :(得分:2)

String mystring=input.getText().toString();

答案 4 :(得分:0)

如果playerName被声明为String,则不需要投射它或任何东西。 getText方法为您提供CharSequence,您可以将其用作String

问题是您是从头开始创建input变量“所以它不会引用任何现有的View。你应该做点什么:

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

然后你可以:

playerName = input.getText();