Android:来自AlertDialog的startActivity()

时间:2011-03-14 11:01:16

标签: android android-intent alertdialog

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

问题是这个AlertDialog位于扩展ItemizedOverlay并且不扩展Activity的类中,所以Eclipse强调它并给出以下错误:

  

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

我想从PositiveButton,NeutralButton和NegativeButton发起活动,但我无法做到。

如果你需要更多的上下文,主Activity是一个带有一些ItemizedOverlay的MapView,我想发布一个带有方向或其他活动的网页。

5 个答案:

答案 0 :(得分:6)

在类中构造一个构造函数,其中包含以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);

答案 1 :(得分:2)

实际上答案是由你在问题中提供的。即在ClickListener函数中未定义startActivity。所以在oncreate函数中,初始化一个像

这样的全局变量
Activity myActivity = this;

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

myActivity.startActivity(xxxxxxxx);

这可能是一个答案。

答案 2 :(得分:1)

查看this

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

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

答案 3 :(得分:0)

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

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

获取

答案 4 :(得分:0)

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

Activity activityClass;

并从构造函数

初始化它

并从该activiytClass

开始活动

activityClass.startActivity();