我得到了我的主要Activity
其中持有不同的Fragment
的,一个片段使用户可以打开一个DialogFragment
。该对话框打开声音文件列表,并且该对话框还包含一个“添加”按钮,用户应该能够从中添加自己的声音文件。为此,我想使用标准的 Android 文件选取功能并利用Intent.ACTION_GET_CONTENT
。因此,当用户按下“添加”按钮并且 Android 文件选择功能按其应有的方式出现时,我会消除此意图,但是当我选择文件时,什么也不会发生。我希望onActivityResult()
我的主要活动被触发,但它没有,我无法让它工作,我不明白为什么这不起作用。
public class MyDialog extends DialogFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Rest omitted...
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
return new AlertDialog.Builder(context)
.setIcon(android.R.drawable.ic_dialog_info)
.setTitle(R.string.TONE_PROMPT_TITLE)
.setNeutralButton(R.string.ADD, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.setType("audio/mpeg");
getActivity().startActivityForResult(intent, ADD_SOUND_REQUEST_CODE);
}
})
.create();
}
}
我还尝试通过以下方式实例化意图:Intent intent = new Intent(getActivity(), MyActivity.class);
但这也行不通。
任何想法都会非常有帮助,谢谢!
设法找出问题所在......
在我的清单中我已经声明了我的Activity
as android:noHistory="false"
这就是问题所在。设置为之后android:noHistory="true"
为了我的活动并解雇我Intent
下面的方法就像一个魅力。
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("audio/mpeg");
getActivity().startActivityForResult(intent, ADD_SOUND_REQUEST_CODE);
就这样,onActivityResult()
在我的活动中被触发,之后我按照@Rohit5k2关于如何获取我的建议Fragment
的 OnActivityResult() 被触发,一切都工作得非常好!
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
MyFragment fragmentObject = getSupportFragmentManager().findFragmentById(R.id.container);
fragmentObject.onActivityResult(requestCode, resultCode, data);
}
谢谢大家帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)