Android开始活动
问题描述:
我正在使用Android的MonoDevelop和MapsAndlocationDemo,并且有关于开始另一项活动的问题。Android开始活动
这里是我的代码:
public void loadActivity (Context ActivityContext)
{
var second = new Intent(ActivityContext, typeof(LocationDetailsActivity));
second.PutExtra("FirstData", "Data from FirstActivity");
StartActivity (second);
}
此代码工作完全从MapWithOverlayActivity : MapActivity
类调用时。我想在调用地图标记的OnTap
方法时从MapItemizedOverlay: ItemizedOverlay
类中调用它。
我试图让该方法是静态的。这里是我的这段代码:
static public void loadActivity (Context ActivityContext)
{
var second = new Intent(ActivityContext, typeof(LocationDetailsActivity));
second.PutExtra("FirstData", "Data from FirstActivity");
StartActivity (second);
}
不过,现在我得到以下错误:An object reference is required for the non-static field, method or property Android.Content.Context.StartActivity(Android.Content.Intent)
我可以请有一些信息,为什么这是不行的,而一些帮助得到它的工作。
答
如果有帮助,您可以使用Android的全局应用程序对象。这里有一个例子:
public class MyApp extends Application{
private String foo = null;
public String getFoo(){
return foo;
}
}
public class MyActivity extends Activity {
private MyApp app;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
app = ((MyApp)getApplication());
String thing = app.getFoo();
}
}
如果您需要的方法是从任何地方访问,你可以用你的意图代替的getFoo方法:)我认为它应该工作。应用参考是here
感谢您的信息。如果可能,你能向我解释我的问题中错误的含义吗?还有如何让它工作。 – Garry
什么是需要的“对象引用”? – Garry
您是否尝试过MapItemizedOverlay.this.loadActivity?我不完全确定 – SalGad