我有一个简单的应用程序,我希望能够保存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文件中?
答案 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连接),这将导致一些严重的问题。