【问题标题】:Android: startActivity() from AlertDialogAndroid:来自 AlertDialog 的 startActivity()
【发布时间】:2011-03-15 22:37:28
【问题描述】:

我正在尝试使用 AlertDialog 中的按钮来查看网页。

问题是这个 AlertDialog 位于一个扩展 ItemizedOverlay 的类内部,而不是扩展 Activity,所以 Eclipse 将它加下划线并给出以下错误:

未定义类型 new DialogInterface.OnClickListener(){}的方法 startActivity(){}

我想从 PositiveButton、NeutralButton 和 NegativeButton 启动活动,但我不能。

如果您需要更多上下文,主要 Activity 是带有一些 ItemizedOverlay 的 MapView,我想启动一个带有方向的网页或其他执行此操作的 Activity。

【问题讨论】:

  • 哇,速度真快...非常感谢,效果很好!!实际上,我的课堂上有一个 Context,所以我只需要将它与新的 Intent 一起使用。谢谢大家!!

标签: android android-intent android-alertdialog


【解决方案1】:

在包含您的警报的类中构造一个构造函数,并将Context 对象作为参数。将其分配给 Context 变量。

使用此上下文变量来创建意图。

Intent intent = new Intent(mContext, "Your next activity to be shown");//mContext is the Context variable over here.
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);    
mContext.startActivity(intent);

【讨论】:

    【解决方案2】:

    实际上答案是您在问题中提供的。即在 ClickListener 函数中未定义 startActivity。所以在 oncreate 函数中,初始化一个全局变量,如

    Activity myActivity = this;
    

    然后在 onclicklistener 中,从这里开始另一个活动。

    myActivity.startActivity(xxxxxxxx);
    

    这可能是一个答案。

    【讨论】:

      【解决方案3】:

      看看this

      在这些中,您可以在 Positive Button 中编写您想要的代码,您可以使用 Intent 启动一个 Activity..

      startActivity(new Intent (YouPage.this,NewPage.class));
      

      【讨论】:

        【解决方案4】:

        在该类的构造函数中传递活动的上下文并创建活动类型的字段 并将上下文存储在该活动中,然后

        Activity activityClass;
        

        并从你的构造函数初始化它

        并从那个activiytClass开始活动

        activityClass.startActivity();

        【讨论】:

          【解决方案5】:

          如果你有上下文说context.startActivity();

          如果您没有上下文,请尝试从 getContext();getApplicationContext();getBaseContext(); 获取它

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-02-19
            • 1970-01-01
            • 2011-12-18
            • 1970-01-01
            相关资源
            最近更新 更多