如何从扩展ItemizedOverlay的类开始和Activity?

时间:2010-09-16 13:48:12

标签: android

我有一个扩展ItemizedOverlay的类。

在其中,我有:

@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) {


 }
  });

当我单击“详细信息”按钮时,我想启动一个Activity或setContentView,但这些方法不存在。

有什么想法吗?

由于

3 个答案:

答案 0 :(得分:1)

你必须创建一个意图。

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

你应该在你的android清单中添加一个intent-filter:

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

有关详细信息,请参阅并阅读this

Esentian

答案 1 :(得分:0)

我是Android新手,但我认为你应该创建Intent来开始一项新活动(并将其传递给Context.startActivity())

答案 2 :(得分: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;
}