我试过了,但字符串 uname 的值始终为null。
EditText username = (EditText)findViewById(R.ID.newusername);
final String uname=username.getText().toString();
有没有解决方案?
答案 0 :(得分:2)
在尝试读取其值之前,您必须在editText
中放置一些内容,否则它将始终为null。此外,它是R.id
...小写。
来自Java代码:
username.setText("testestestest");
uname = username.getText().toString();
在XML代码中:
<EditText
android:text="Default username"/>
或者,向其添加一个侦听器,并读取侦听器内的输入。
username.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(s!=null && s.length() > 0){
//do stuff
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
});
现在它不会为空。
答案 1 :(得分:1)
我会声明如下:
final String uname;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity);
EditText username = (EditText)findViewById(R.id.newusername);
uname = username.getText().toString();
}
这有帮助吗?