我有一个ListView
的SQLite位置数据,即:纬度,经度和位置地址。我想通过单击列表项将特定项目保存到文件。我该怎么做?请给我一个与此相关的示例,或者请解释我该如何做到这一点。
String latS;
String lonS;
String locS;
ListView list;
private ArrayList<String> kId = new ArrayList<String>();
private ArrayList<String> t_latitude = new ArrayList<String>();
private ArrayList<String> t_longitude = new ArrayList<String>();
private ArrayList<String> t_location=new ArrayList<String>();
list.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3)
{
latS=t_latitude.get(position).toString();
lonS=t_longitude.get(position).toString();
locS=t_location.get(position).toString();
Intent mIntent=new Intent(android.content.Intent.ACTION_VIEW,Uri.parse("http://maps.google.com/maps? saddr="+Latitude+", "+Longitude+"&daddr=" +latS+", "+lonS)); <<<<<<******* I have getting the values over here..*******>>>>>>
}
});
@Override
public boolean onContextItemSelected(MenuItem item)
{
final AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
if(item.getTitle()=="Save")
{
try
{
File file=new File("/sdcard/data.txt");
file.createNewFile();
FileOutputStream fOut = new FileOutputStream(file);
OutputStreamWriter out=new OutputStreamWriter(fOut);
out.append("Location: "+locS+"\n");
out.append("Latitude: "+latS+"\n");
out.append("Longitude: "+lonS+"\n");
out.close();
fOut.close();
Toast.makeText(getBaseContext(),"file saved",Toast.LENGTH_SHORT).show();
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
答案 0 :(得分:1)
首先,您需要在字符串中获取数据。
String latitude, longitude, address;
这些将保存您的列表视图项目的数据。
使用这些String中的数据,构建一个String:
StringBuilder locationStrBuilder = new StringBuilder();
locationStrBuilder.append("Latitude: "+latitude);
locationStrBuilder.append("\nLongitude: "+longitude);
locationStrBuilder.append("\nLocation: "+location);
String locationStr = locationStrBuilder.toString();
在清单中添加写入SD卡的权限。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
现在要将数据保存在文本文件中,您需要执行以下操作:
try {
File locationFile = new File("/sdcard/locationfile.txt");
locationFile.createNewFile();
FileOutputStream fOut = new FileOutputStream(locationFile);
OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
myOutWriter.append(locationStr);
myOutWriter.close();
fOut.close();
Toast.makeText(getBaseContext(),
"location saved",
Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Toast.makeText(getBaseContext(), e.getMessage(),
Toast.LENGTH_SHORT).show();
}
希望这有帮助。
答案 1 :(得分:0)
无论如何,您总是可以创建一个包含所需属性的JSON对象,并使用JSONObject.toString()来获取文本并使用OutputStream将其写入您想要的任何位置。到文件或任何其他地方。