2010-09-16 66 views
1

我有一个扩展ItemizedOverlay的类。如何从一个扩展ItemizedOverlay的类开始和Activity?

在这里面,我有:

@Override 
protected boolean onTap(int index) { 
    OverlayItem item = mOverlays.get(index); 
    /*// working below code, just replace */ 
    AlertDialog.Builder dialog = new 
    AlertDialog.Builder(mContext); 
    dialog.setTitle(item.getTitle()); 
    dialog.setMessage(item.getSnippet()); 
    dialog.setPositiveButton("Details", 
new DialogInterface.OnClickListener() { 
public void onClick(DialogInterface dialog, int id) { 


} 
    }); 

当我点击“详细信息”按钮,我要开始一个活动或的setContentView,但这些方法是不存在的。

任何想法?

感谢

回答

1

您必须创建一个意图。

Intent i = new Intent(this /*context*/, ExampleActivityClass.class /*Your new Activity Class*/); 
i.setAction("android.intent.action.VIEW"); 
startActivity(i); 

,你应该意图过滤器添加到您的Android清单:

<activity android:name=".ExampleActivityClass"> 
    <intent-filter> 
     <action android:name="android.intent.action.VIEW /> 
    </intent-filter>  
</activity> 

欲了解更多信息,请参阅和阅读this

Esentian

+0

Esentian, 这是有道理的,但类不扩展活动,但ItemizedOverlay。 – motti10 2010-09-16 15:11:29

0

我是新来的Android,但我认为你应该创建意图开始一个新的活动(并将它传递给Context.startActivity()) 。

+0

这有效......我没有把它传递给上下文。我的坏.. – motti10 2010-09-16 15:16:36

0

我定义的扩展ItemizedOverlay类作为Map Activity的私有类,因为它是完全指定要与Activity保持一致的功能。所以方法getApplicationContext()和startActivity()都可用。

protected boolean onTap(int index) { 
    selectedItem = mOverlays.get(index); 
    Intent i= new Intent(getApplicationContext(), MyNewActivity.class); 
    i.putExtra(Application.ITEM_KEY, selectedItem)); 
    startActivity(i); 
    return true; 
} 
相关问题