从对话框片段启动活动

4

我是一个有用的助手,可以帮您进行文本翻译。

我有一个对话框片段附加到主活动中,是否有任何方法可以通过按钮单击从DialogFragment启动另一个Activity。

我的Intent在DialogFragment中调用:

Intent i= new Intent(getActivity(),SecondActivity.class);

startActivity(i);

已在Manifest.xml中注册第二个活动

如下所示:

请参考以下内容

<activity android:name=".SecondActivity" 

          android:label="@string/app_name"  

          android:theme="@android:style/Theme.Dialog">

  <intent-filter>

        <action android:name="com.example.testjsoncall.SecondActivity" />
        <category android:name="android.intent.category.DEFAULT" />

  </intent-filter>

</activity>

为什么要使用getActivity?使用当前上下文.. - Ranjit
用Dialog Fragment上下文开始您的活动。 - Piyush
@PiyushGupta:我相信Fragment本身没有关联上下文,它只是使用父级的上下文。在这里,我使用getActivity()函数,该函数返回MainActivity的上下文。 - Anandaraja_Srinivasan
我知道...我建议为此创建全局变量。 - Piyush
@gunar:问题是我遇到了空指针异常。 - Anandaraja_Srinivasan
@Anandaraja_Srinivasan:那请发布logcat。 - gunar
2个回答

8
希望这能帮到你:)
Intent i= new Intent(context,SecondActivity.class);

context.startActivity(i);

从DialogFragment获取应用程序上下文就可以解决问题了。现在我可以轻松地从DialogFragment导航到另一个Activity。谢谢。 - Anandaraja_Srinivasan
当我尝试时,出现以下错误:java.lang.RuntimeException: Parcelable在写入可序列化对象(名称= kidega.klebilgiteknolojiler.com.kidega.user_account.UserAccountFragment)时遇到IOException。你能帮我吗? - Bayar Şahintekin

4

getActivity() 返回当前 Activity 的上下文。你需要 Dialog Fragment 的上下文,所以在那里获取上下文。

因此,在你的 DialogFragment 中使用 MyActivity.this 作为你的上下文。

希望这能起作用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接