2012-04-28 131 views
0

我在編輯文件時出現問題,當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

回答

0

取而代之的是

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

嘗試這樣

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

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

0

您需要修剪的文字除了檢查長度:

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

一個更大的問題是您的代碼寫入主線程上的文件系統。您也不要在finally塊中關閉FileWriter。並且在close()之前不需要調用flush()。

+0

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