3

EditTextコントロールの内容を保存して、ユーザーが自由形式のテキストを追加してテキストファイルに保存できるようにするシンプルなアプリがあります。

main.xmlにコントロールがあります

<EditText
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:text="text in here"
        android:id="@+id/editText" android:layout_gravity="center"/>

そしてメニューアイテム

<item android:id="@+id/menu_add"
      android:icon="@drawable/ic_menu_add"
      android:title="@string/menu_add"
      android:showAsAction="ifRoom|withText"
      android:onClick="addItem"
        />

onClickが私のaddItemを呼び出すとvoid

public void addItem(MenuItem menuItem) {

        String sdcard = Environment.getExternalStorageDirectory().getAbsolutePath();

        try {
            FileWriter filenew = new FileWriter(sdcard + "/test.txt");
            BufferedWriter bw = new BufferedWriter(filenew);
            bw.write(menuItem.toString());
            bw.close();
        } catch (IOException e) {
            //You'll need to add proper error handling here
        }

    }

現時点では、menuItem.toString()は当然のことながら文字列'Add'を返します。

EditTextコントロールに含まれているテキストにアクセスして、test.txtファイルに追加するにはどうすればよいですか?

4

2 に答える 2

1

findViewById()まず、 EditTextビューへの参照を取得するためにを使用する必要があります。次に、を呼び出しgetText().toString()てその内容を文字列として取得できます。

于 2013-01-02T22:01:03.447 に答える
1

このアプリをどのように設定したかはわかりませんが、SDカードにデータを書き込むこともおそらく最善の方法ではありません。

とにかく、最初にEditTextを見つける必要があります(ルートレイアウトがsetContentViewで設定されているアクティビティにいると仮定します):

EditText mText = (EditText) this.findViewById(R.id.editText); 

これをプライベート変数に保存すると、アクティビティ全体で使用できます。次のコマンドでテキストを取り出すことができます。

mText.getText().toString(); 

ps。本当にそれを維持したいのであれば、SDカードパスを取得する方法を詳しく調べたいと思うかもしれません。これは、誰かがSDカードをマウントしていない場合、またはSDカードに到達できない場合(たとえば、誰かの電話が特定の場合にUSBに接続されている場合)に深刻な問題を引き起こします。

于 2013-01-02T22:05:04.450 に答える