2011-07-19 7 views
-1

クリックしたときに上にテキストの書式で書かれたテキストを保存するボタンがあります。ただし、ボタンをクリックするとアプリケーション強制は終了します。何が問題なの?Androidでデータを保存するのに役立つ

save.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     String FILEOUTPUT = Day; 
     BufferedWriter bfw; 

     try { 
      bfw = new BufferedWriter (new FileWriter(FILEOUTPUT)); 
      Scanner scan = new Scanner((File) editData.getText()); 

      bfw.write(scan.nextLine()); 
      bfw.close(); 
      Toast.makeText(getApplicationContext(), "Saved", Toast.LENGTH_SHORT); 
     } catch (Exception e) { 
      Toast.makeText(getApplicationContext(), "Save error", Toast.LENGTH_SHORT); 
     } 
    } 
}); 
+0

)私はあなたが 'editData.getText(のリターンをキャストすることはできません賭けlogcatログ – MByD

+0

を追加し'に適切な構文は何 'File'オブジェクト –

+0

にしてくださいEditTextのテキストをストリームに割り当てますか? –

答えて

1

これらのケースでは、DDMSから報告された例外を最初に調べることをお勧めします。 DDMSから報告された例外を提供できますか? editDataはどこですか?それはEditTextかTextViewですか?その行の中で文字列を直接Fileにキャストしているのではなく、Fileオブジェクトを作成する必要があります。

は次のようにする必要があります:

Scanner scan = new Scanner(new File(editData.getText())); 
+0

EditTextです。構文をあなたのものに変更しましたが、強制終了されなくなりましたが、editData.getText()はファイルオブジェクトを返さないので、何とかキャストする必要があります。文字列としてキャストするとコードをコンパイルできますが、コードは正しく動作しません(Toastメッセージは表示されません)。 –

+0

私はあなたがeditDataにファイルパスまたは名前を保持していると推測しています。したがって、editData.getText()からこのパスを取得するときは、Fileインスタンスを "new File(filename)"部分で作成する必要があります。 – faraday

+0

私は本当にあなたが意味するものを得ることはありません。詳しく教える? –

関連する問題