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

不确定您是如何设置此应用程序的,但将数据写入 SD 卡也可能不是最好的主意。

无论如何,您需要首先找到您的 EditText(假设您在一个使用 setContentView 设置根布局的 Activity 中):

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

如果你把它保存到一个私有变量中,你可以在你的 Activity 中使用它。您可以使用以下命令取出文本:

mText.getText().toString(); 

附言。如果你真的想坚持下去,你可能还想仔细看看你获得 SD 卡路径的方式。如果某人没有安装 SD 卡或无法访问它(例如,在某些情况下某人的手机与 USB 连接),这将给您带来一些严重的问题。

于 2013-01-02T22:05:04.450 回答
1

首先,您需要使用findViewById()EditText 视图来获取引用。然后您可以调用getText().toString()以将其内容作为字符串获取。

于 2013-01-02T22:01:03.447 回答