getText().toString() 不起作用,返回空



我正在尝试保存userName但保存的文本文件总是返回, 6.如何让它显示输入到EditText的用户名的任何值,以及其余的?例如Don, 6.我已经读到您必须使用getText()但这不会在保存的文件中返回任何内容。

但是,如果我将6替换为从以前的活动中获得分数的意图,这就可以了! 像这样...

Bundle extras = getIntent().getExtras();
int score = extras.getInt("Score");

所以这变成了...

public void addListenerToEndButton() {
quit = (Button) findViewById(R.id.endBtn);
userName = (EditText) findViewById(R.id.userName);
Bundle extras = getIntent().getExtras();
int score = extras.getInt("score");
quit.setOnClickListener(new View.OnClickListener() {
String strName = userName.getText().toString();
@Override
public void onClick(View v) {
saveProgress(strName + ", " + score, "results.txt");
finish();
System.exit(0);
}
});
}

但它仍然返回empty, whatever score is.例如, 4.

我已经阅读了这篇文章,建议它应该在 onClickListener 中,它是: EditText getText().toString() 不起作用

这是我saveProgress课:

public void saveProgress(String contents, String fileName) {
try {
File fp = new File(this.getFilesDir(), fileName);
FileWriter out = new FileWriter(fp);
out.append(contents);
out.append("nr");
out.close();
}
catch (IOException e) {
Log.d("Me","file error:" + e);
}
}

使用以下命令更改onClick()方法:

public void addListenerToEndButton() {
quit = (Button) findViewById(R.id.endBtn);
userName = (EditText) findViewById(R.id.userName);
Bundle extras = getIntent().getExtras();
int score = extras.getInt("score");
quit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String strName = userName.getText().toString();
saveProgress(strName + ", " + score, "results.txt");
finish();
System.exit(0);
}
});
}

调用、初始化、操作、exc 应该放在侦听器的onClick方法中。仅当单击按钮时,才会触发onClickonClick外部但Listener内部的所有内容都将在初始化Listener调用

我想你对"inside onClickListener"的理解是错误的。您正在做的是,您在创建侦听器时读取strName,但我想您想在单击quit时读取它。

因此,只需将行移动到函数中,值就会正确。

public void addListenerToEndButton() {
quit = (Button) findViewById(R.id.endBtn);
userName = (EditText) findViewById(R.id.userName);
quit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String strName = userName.getText().toString();
saveProgress(strName + ", " + 6, "results.txt");
finish();
System.exit(0);
}
});
}

最新更新