根据EditText的内容写入文件

问题描述:

我在编辑文件时出现问题,当EditText为空时我想在我的文件中写入单个空格字符或-,但我的条件被忽略。根据EditText的内容写入文件

这不是工作,我不明白为什么:

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(); 
      } 
      } 

     } 
    }); 
+0

第一个显而易见的想法是'isthereafile'是错误的 - 您是否尝试过使用调试器或记录数值? – RivieraKid 2012-04-28 14:33:16

+0

感谢您的帮助,但onClick方法isthereafile成为真实的,这是当用户推回按钮和dosnt点击对话框上的“确定”,防止崩溃等... – CELB 2012-04-28 14:41:09

+0

显示代码也... – 5hssba 2012-04-28 14:45:34

取而代之的是

question.getText().toString().equals("") 

尝试这样

question.getText().toString().length()==0 
+0

谢谢你这是有用的知道 – CELB 2012-04-28 14:39:33

您需要修剪的文字除了检查长度:

if (question.getText().toString().trim().length() == 0) { 
} 

一个更大的问题是您的代码写入主线程上的文件系统。您也不要在finally块中关闭FileWriter。并且在close()之前不需要调用flush()。

+0

你能解释一下吗? – CELB 2012-04-28 16:13:47