Android 基于EditText的内容写入文件
我在写入文件时遇到问题,当EditText为空时,我想在文件中写入一个空格字符或-但我的条件被忽略 这不起作用,我不明白为什么:Android 基于EditText的内容写入文件,android,file-io,Android,File Io,我在写入文件时遇到问题,当EditText为空时,我想在文件中写入一个空格字符或-但我的条件被忽略 这不起作用,我不明白为什么: public void onClick(View v) { // TODO Auto-generated method stub if(isthereafile == true){ questioncount++; questiontext = question.getTe
public void onClick(View v) {
// TODO Auto-generated method stub
if(isthereafile == true){
questioncount++;
questiontext = question.getText().toString();
correctanswertext = correctanswer.getText().toString();
wronganswertext1 = wronganswer1.getText().toString();
wronganswertext2 = wronganswer2.getText().toString();
textpathofpic = pathofpic.getText().toString();
try {
FileWriter writer = new FileWriter(test,true);
if(question.getText().toString().equals("") == false){
writer.append(questiontext + ";");}
if(correctanswer.getText().toString().equals("") == false){
writer.append(correctanswertext + ";");}
if(wronganswer1.getText().toString().equals("") == false){
writer.append(wronganswertext1 + ";");}
if(wronganswer2.getText().toString().equals("") == false){
writer.append(wronganswertext2 + ";");}
if(pathofpic.getText().toString().equals("") == false){
writer.append(textpathofpic + ";");}
if(question.getText().toString().equals("")){writer.append("-");}
if(correctanswer.getText().toString().equals("")){writer.append("-");}
if(wronganswer1.getText().toString().equals("")){writer.append("-");}
if(wronganswer2.getText().toString().equals("")){writer.append(" ");}
writer.flush();
writer.close();
question.setText("");
correctanswer.setText("");
wronganswer1.setText("");
wronganswer2.setText("");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
});
而不是这个
question.getText().toString().equals("")
像这样试试
question.getText().toString().length()==0
除了检查长度外,还需要修剪文本:
if (question.getText().toString().trim().length() == 0) {
}
一个更大的问题是代码在主线程上写入文件系统。您也不会在finally块中关闭FileWriter。关闭前无需立即调用flush。第一个明显的想法是isthereafile为false-您是否尝试过单步执行调试器,或记录值?感谢您的帮助,但在onClick方法中,isthereafile变为true时,用户按下后退按钮并在对话框上单击OK,针对崩溃等…为了未来访问者的利益,通常更可取的做法是添加一个自己的答案,解释如何修复代码,然后接受该答案,而不是删除代码并评论您已修复代码。我已经回滚了您的编辑以给您这样做的机会。单击对话框上的“确定”、“防止崩溃”等按钮和按钮是什么意思。。。什么是反对崩溃等?好吧,对不起,我必须等8个小时才能回答@raju,我会解释我的答案