0

ファイルへの書き込みに問題があります。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();
            }
            }

        }
    });
4

2 に答える 2

0

長さを確認するだけでなく、テキストをトリミングする必要があります。

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

より大きな問題は、コードがメイン スレッドでファイル システムに書き込むことです。また、finally ブロックで FileWriter を閉じません。また、close() の直前に flush() を呼び出す必要はありません。

于 2012-04-28T14:51:47.880 に答える
0

これの代わりに

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

このようにしてみてください

  question.getText().toString().length()==0
于 2012-04-28T14:35:33.140 に答える