【发布时间】:2012-06-14 16:53:36
【问题描述】:
我有一个对话框首选项,上面有一个按钮,我想打开另一个活动。该活动完成后,我希望对话框使用从活动中收集的信息更新文本视图(在对话框中)。
换句话说: 首选项屏幕 --> 对话框首选项 --> 对话框 --> 按钮单击事件 --> 活动
我曾经有一个正常的活动调用活动(活动-->按钮单击-->活动),所以我可以使用 startactivityforresult,然后从“onactivityresult”调用我的syncgui函数。遗憾的是,Dialog 首选项不是一个活动,因此只能使用 startactivity(来自上下文),而不是 startactivityforresult(来自活动)。
有没有其他方法可以告诉我的对话框它开始的活动已经完成并且它可以更新文本视图?以下是原始函数
旧的父活动:
public void onClick(View v) {
if(v == mSimModeBrowse) {
Intent i = new Intent("com.shared.FileChooser");
i.putExtra("com.shared.FileChooser.EXTRA_PATH", vsbPath);
i.putExtra("com.shared.FileChooser.EXTRA_EXTENSIONS", vsbExtensions);
startActivityForResult(i,0);
}
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == RESULT_OK) {
final String file = data.getExtras().getString("com.shared.FileChooser.EXTRA_RESULT");
mSimModePath.setText(file);
}
}
来自文件选择器(子活动):
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
File f = new File(path + "/" + files.get(position));
Intent i = new Intent();
i.putExtra(EXTRA_RESULT,f.getAbsolutePath());
setResult(RESULT_OK,i);
finish();
}
【问题讨论】:
标签: android android-preferences