我正在尝试保存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() not working
这是我的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("\n\r");
out.close();
}
catch (IOException e) {
Log.d("Me","file error:" + e);
}
}
答案 0 :(得分:1)
使用以下内容更改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
方法。仅在单击按钮时才会触发onClick
,onClick
之外但Listener
内的所有内容都会在Listener
初始化
答案 1 :(得分:0)
我猜你明白了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);
}
});
}