EditText'text'到sdcard

时间:2013-01-02 21:55:14

标签: android

我有一个简单的应用程序,我希望能够保存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文件中?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

不确定您是如何设置此应用的,但将数据写入SD卡也可能不是最佳选择。

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

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

如果将其保存到私有变量中,则可以在Activity中使用它。 您可以使用以下内容取出文本:

mText.getText().toString(); 

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