我正在尝试使用AlertDialog中的Button来查看网页。
问题是这个AlertDialog位于扩展ItemizedOverlay并且不扩展Activity的类中,所以Eclipse强调它并给出以下错误:
方法startActivity()未定义类型new DialogInterface.OnClickListener(){}
我想从PositiveButton,NeutralButton和NegativeButton发起活动,但我无法做到。
如果你需要更多的上下文,主Activity是一个带有一些ItemizedOverlay的MapView,我想发布一个带有方向或其他活动的网页。
答案 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();