在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();
答案 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();