我有一个由两个活动构建的应用程序。
主要活动(活动1),使用某个按钮,使用startActivityforResult
将您带到活动2。
活动2是一个文件选择器,通过单击选择某个文件。
一旦选择了文件,我希望它将数据(所选文件路径)作为字符串发送回活动1并返回到活动1.因此,活动1将对文件执行某些操作(如活动1中所述) #39; s onActivityResult
)。
我使用简单的onListItemClick
实现(文件选择器使用列表视图来显示我们选择文件的列表)。
如果选择确实是一个文件(通过" Toast"输出给用户验证)。
有一个finish()方法,它应该发送回数据并带你回到活动1。
以下是活动2 onListItemClick
方法的代码。如果需要更多,请告诉我,我将添加其余的活动):
@Override
protected void onListItemClick(ListView l, View v, int position, long id)
{
String filename = (String) getListAdapter().getItem(position);
if (path.endsWith(File.separator))
{
filename = path + filename;System.out.println("Ends with file separator\n");
}
else
{
filename = path + File.separator + filename;System.out.println("No file separator\n");
}
if (new File(filename).isDirectory())
{
Intent intent = new Intent(this, ListFileActivity.class);
intent.putExtra("path", filename);
startActivity(intent);//re-do this activity, to enter the directory
}
else
{
File F=new File(filename);
Toast.makeText(this, filename + " is not a directory, file chosen!", Toast.LENGTH_LONG).show();
String P=F.getAbsolutePath();
System.out.printf("---------------Absolute directory is %s\n",P);
Intent ResultIntent=new Intent();
ResultIntent.putExtra("Address",filename);
setResult(Activity.RESULT_OK,ResultIntent);
finish();
}
}
感谢大家的帮助, 朱利
答案 0 :(得分:1)
假设您已发布Activity1
代码,当您执行finish()
时,它正在完成Activity1
而不是Activity2