我有一个用于获取文件夹路径的Activity。要导航到下一个文件夹,我使用文件夹的路径为此Activity创建一个intent。当我试图返回结果时,它会在中间丢失。
给出结果:
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
Intent returnIntent = getIntent();
switch (item.getItemId())
{
case R.id.action_ok:
returnIntent.putExtra("path", filename);
Log.d("Result", "Picker"+String.valueOf(RESULT_OK));
setResult(Activity.RESULT_OK, returnIntent);
finish();
return true;
case R.id.action_abort:
setResult(RESULT_CANCELED, returnIntent);
finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
导航(是的,它是ListActivity):
@Override
protected void onListItemClick(ListView l, View v, int position, long id)
{
filename = (String) getListAdapter().getItem(position);
if (path.endsWith(File.separator))
{
filename = path + filename;
}
else
{
filename = path + File.separator + filename;
}
if (new File(filename).isDirectory())
{
Intent intent = new Intent(this, DirectoryPicker.class);
intent.putExtra("path", filename);
startActivityForResult(intent,0);
}
this.finish();
}
获得结果:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (getIntent() != null)
{
Intent returnIntent = getIntent();
setResult(RESULT_OK, returnIntent);
finish();
}
super.onActivityResult(requestCode, resultCode, data);
}
答案 0 :(得分:0)
当我试图返回结果时,它会在中间丢失。
中间没有丢失。您正在寻找错误位置的结果。 X-Content-Duration
启动getIntent()
后,Activity
会返回意图。它不知道您在其他Activity
中设置的结果。您必须使用onActivityResult
,Intent data
的第三个参数。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (data != null) {
setResult(RESULT_OK, data);
finish();
}