Ich habe einfach 2 Registerkarten und Experience - Multiple Android Activities in a TabActivity als Referenz verwendet.
Meine Klasse Architektur ist wie folgt:
MainActivity erstreckt TabActivity
1. TabGroup1Activity erstreckt TabGroupActivity (TabGroupActivity-Klasse von oben Referenz implementiert)
1.I. Tab1Activity MapActivity erstreckt (die mehrere Marker hat)
2. TabGroup2Activity erstreckt TabGroupActivity
2.i Tab2ActivityKann keine neue Aktivität von alertdialog onclicklistener starten, wenn activitygroup verwendet wird
In der zweiten Registerkarte (Tab2Activity) zeige ich die Google Map, die mehrere Marker hat. Beim Taping des Markers zeigte ich den Alertdialog mit der Option Weitere Informationen an.
Beim Klicken auf die Option Weitere Informationen muss ich eine neue Aktivität starten, ohne die Tabs unten zu verlieren.
wo ist der Fehler, den ich nicht weiß ??
MapItemizedOverlay.java
public class InformationItemizedOverlay extends ItemizedOverlay<OverlayItem> {
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
private Context mContext;
Activity parentContext;
public InformationItemizedOverlay(Drawable defaultMarker, Context context,
Activity parent) {
super(boundCenterBottom(defaultMarker));
mContext = context;
parentContext = parent;
}
public void addOverlay(OverlayItem overlay) {
mOverlays.add(overlay);
populate();
}
@Override
protected OverlayItem createItem(int i) {
return mOverlays.get(i);
}
@Override
public int size() {
return mOverlays.size();
}
@Override
protected boolean onTap(int index) {
OverlayItem item = mOverlays.get(index);
AlertDialog.Builder dialog = new AlertDialog.Builder(parentContext);
dialog.setTitle(item.getTitle());
dialog.setMessage(item.getSnippet());
dialog.setPositiveButton("More Info..",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Intent test = new Intent(parentContext,
AboutActivity.class);
TabGroupActivity parentActivity = (TabGroupActivity) parentContext;
parentActivity
.startChildActivity("AboutActivity", test);
}
});
dialog.show();
return true;
}
}
Wenn ich mit obigen Code versuchen, gibt Fehler, wenn ich die Schaltfläche Weitere Informationen auf Alertdialog klicken.
Wenn ich die Alertdialog entfernen und den folgenden Code schreiben, es funktioniert gut, eröffnet neue Aktivität in der gleichen Registerkarte:
@Override
protected boolean onTap(int index) {
OverlayItem item = mOverlays.get(index);
Intent test = new Intent(parentContext,
AboutActivity.class);
TabGroupActivity parentActivity = (TabGroupActivity) parentContext;
parentActivity
.startChildActivity("AboutActivity", test);
}
});
return true;
}
Wie kann ich es neue Aktivität öffnen funktioniert, wenn ich die Schaltfläche Weitere Informationen sind abrufbar unter Alarmdialog?
Hilfe !!
04-05 17: 42: 02,171: W/dalvikvm (2631): ThreadID = 1: Gewinde mit abgefangene Ausnahme verlass (group = 0x4001d800) 04-05 17: 42: 02,171: E/Android Runtime (2631): FATALE AUSNAHME: Haupt 04-05 17: 42: 02.171: E/AndroidRuntime (2631): java.lang.ClassCastException: com.bbs.MainActivity 04-05 17: 42: 02.171: E/AndroidRuntime (2631): at com.bbs1.InformationItemizedOverlay $ 1.onClick (InformationItemizedOverlay.java:63) 04-05 17: 42: 02.171: E/AndroidRuntime (2631): um com.android.internal.app.AlertController $ ButtonHandler.handleMessage (AlertController.java:158) 04-05 17: 42: 02.171: E/AndroidRuntime (2631): bei android.os.Handler.dispatchMessage (Handler.java:99) 04-05 17: 42: 02.171: E/AndroidRuntime (2631): bei android.os.Looper.loop (Looper.java:123) 04-05 17: 42: 02.171: E/AndroidRuntime (2631): um android.app.ActivityThread.main (ActivityThread.java:4627) 04-05 17: 42: 02.171: E/AndroidRuntime (2631): at java.lang.reflect.Method.invokeNative (systemeigene Methode) 04-05 17 : 42: 02.171: E/AndroidRuntime (2631): at java.lang.reflect.Method.invoke (Methode.java:521) 04-05 17: 42: 02.171: E/AndroidRuntime (2631): at com.android .internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:868) 04-05 17: 42: 02.171: E/AndroidRuntime (2631): bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java : 626) 04-05 17: 42: 02.171: E/AndroidRuntime (2631): at dalvik.system.NativeStart.main (Native Methode)
können Sie die logcat Fehlerdetails – Nishant
@Nishant senden nur mit logcat Fehler aktualisiert !! – captaindroid
Was ist Zeile 63 in Ihrem Code? Die 'TabGroupActivity'-Besetzung? – 207