如何在android中将listview的内容保存到文本文件中?

如何在android中将listview的内容保存到文本文件中?,android,listview,android-sdcard,Android,Listview,Android Sdcard,我有一个列表视图,它有一堆内容,我想知道如何将列表视图中的内容保存为文本文件?我正在从数据库中提取所有内容。我正在判断您是否要保存用户单击的行的内容: 如果使用ListActivity重写onListItemClick(ListView lv、View v、int位置、长id)。然后String str=lv.getItemAtPosition(position).toString()可以提供行中包含的字符串。其他的可能性取决于您的具体实现。您还可以访问已单击的视图 我认为您不想保存所有行的内容

我有一个列表视图,它有一堆内容,我想知道如何将列表视图中的内容保存为文本文件?我正在从数据库中提取所有内容。

我正在判断您是否要保存用户单击的行的内容:

如果使用ListActivity重写onListItemClick(ListView lv、View v、int位置、长id)。然后String str=lv.getItemAtPosition(position).toString()可以提供行中包含的字符串。其他的可能性取决于您的具体实现。您还可以访问已单击的视图

我认为您不想保存所有行的内容,因为您的数据库中已经有这些内容,并且可以从那里简单地查询和保存

一旦你有了绳子。创建一个新文件并写入其中

写入文件的一种方式:

     try {
            File f = File.createTempFile("file", ".txt", Environment.getExternalStorageDirectory ());
            FileWriter fw = new FileWriter(f);
            fw.write(str);
            fw.close();

        } catch (IOException e) {
            e.printStackTrace();
            Toast.makeText(getApplicationContext(), "Error while saving file", Toast.LENGTH_LONG).show();
        }

我建议您保存用户单击的行的内容:

如果使用ListActivity重写onListItemClick(ListView lv、View v、int位置、长id)。然后String str=lv.getItemAtPosition(position).toString()可以提供行中包含的字符串。其他的可能性取决于您的具体实现。您还可以访问已单击的视图

我认为您不想保存所有行的内容,因为您的数据库中已经有这些内容,并且可以从那里简单地查询和保存

一旦你有了绳子。创建一个新文件并写入其中

写入文件的一种方式:

     try {
            File f = File.createTempFile("file", ".txt", Environment.getExternalStorageDirectory ());
            FileWriter fw = new FileWriter(f);
            fw.write(str);
            fw.close();

        } catch (IOException e) {
            e.printStackTrace();
            Toast.makeText(getApplicationContext(), "Error while saving file", Toast.LENGTH_LONG).show();
        }
尝试数组序列化(您可以序列化并返回对象)

ObjectOutputStream out;
Object[]objs=新对象[yourListView.getCount()];
for(int i=0;i
尝试数组序列化(您可以序列化并返回对象)

ObjectOutputStream out;
Object[]objs=新对象[yourListView.getCount()];
for(int i=0;i
已经很好地介绍了写入文件的机制,但我想补充以下内容:

我正在从数据库中提取所有内容

在这种情况下,您可以从ListView中获取光标,然后使用
SQLiteCursor.getItemAtPosition()

私有字符串getCsvFromViewCursor(ListView myListView){
StringBuilder=新的StringBuilder();
SQLiteCursor;
builder.append(“\”字段1\”,“\”字段2\”\n”);
对于(int i=0;i
已经很好地介绍了写入文件的机制,但我想补充以下内容:

我正在从数据库中提取所有内容

在这种情况下,您可以从ListView中获取光标,然后使用
SQLiteCursor.getItemAtPosition()

私有字符串getCsvFromViewCursor(ListView myListView){
StringBuilder=新的StringBuilder();
SQLiteCursor;
builder.append(“\”字段1\”,“\”字段2\”\n”);
对于(int i=0;i
如果我想保存所有信息,我将如何保存?您可以尝试:lv.getCount()保存所有项目。然后循环所有项目以获取每行的内容。lv.getItemAtPosition(position).toString()。位置的值将从零到计数。将所有字符串相加并另存为上述内容。如果我想保存所有信息,我将如何保存?您可以尝试:lv.getCount()保存所有项目。然后循环所有项目以获取每行的内容。lv.getItemAtPosition(position).toString()。位置的值将从零到计数。将所有字符串相加并另存为上面的值。getItemAtPosition()不是一个好主意,因为如果项目没有显示在屏幕上,它将返回null。getItemAtPosition()不是一个好主意,因为如果项目没有显示在屏幕上,它将返回null。
private String getCsvFromViewCursor(ListView myListView) {
    StringBuilder builder = new StringBuilder();
    SQLiteCursor cursor;
    builder.append("\"Field 1\",\"Field 2\"\n");
    for (int i = 0; i < myListView.getCount(); i++ ){
        cursor = (SQLiteCursor) myListView.getItemAtPosition(i);
        builder.append("\"").append(cursor.getString(0)).append("\",");
        builder.append("\"").append(cursor.getString(1)).append("\"\n");
    }
    return builder.toString();
}