startActivityForResult scheint nicht zu nennen onActivityResult
Wenn Der Benutzer Klicken Sie auf die Schaltfläche Sie möchten, rufen Sie den dialog dieser dialog enthält Liste der Produkt-in die Listenansicht.Nachdem der Benutzer slect das Produkt, das es kommen sollte, zu previuous Aktivität.
Habe ich getan mit startActivityForResult ()
.
Dort aresome Problem.Mein Aufruf-Aktivität ist in der normalen Registerkarte Aktivität, die Registerkarte normal activty in der Registerkarte Aktivität der Gruppe.
Actualy ich will zu tun, drrop unten(Spinner).In meinem scanerio ich konnte keinen Zusammenhang.Es awalys geben Android Spinner Error : android.view.WindowManager$BadTokenException: Unable to add window
Also muss ich ändern, um mein design so: Wenn Benutzer klicken Sie auf zu ihm aufzubauen, es laden Sie die Liste der Produkt-in die Listenansicht.Nachdem Sie ein Produkt wählen, das, Sie kommen zurück zum vorherigen Tätigkeit.
Dies ist meine Vorherige Frage : link
Hier fordern Aktivität:
//Click Product button
l_prod.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent showContent = new Intent(LineDiscountActivity.this,ListProductActivity.class);
Bundle bundle = new Bundle();
bundle.putString("Activity", "LineDiscountActivity");
bundle.putString("RetailerName", retailerName);
bundle.putString("RetailerCode", retailerCode);
showContent.putExtra("discountProduct", discountList);
showContent.putExtras(bundle);
getParent().startActivityForResult(showContent, 5);
}
});
Und mein receiver Aktivität :
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
Object o = this.getListAdapter().getItem(position);
String book = o.toString();
Intent i = new Intent();
Bundle bundle = new Bundle();
bundle.putString("Activity", "ListProductActivity");
bundle.putString("RetailerName", retailerName);
bundle.putString("RetailerCode", retailerCode);
bundle.putString("seletcedProductCode", products.get(position).getProductCode());
bundle.putString("seletcedProductName", products.get(position).getDescription());
bundle.putDouble("seletcedProductQty", products.get(position).getAvailableQuantity());
i.putExtra("discountProduct", discountList);
i.putExtras(bundle);
if (getParent() == null) {
setResult(Activity.RESULT_OK, i);
} else {
getParent().setResult(Activity.RESULT_OK, i);
}
ListProductActivity.this.finish();
}
- Und Aufruf-Aktivität
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// super.onActivityResult(requestCode, resultCode, data);
Log.i("-requestCode from LineDisocunt--" ,"" + requestCode);
}
Habe ich geschrieben, dieser code(onActivityResult
) in Aufruf-Aktivität & Tab-main Activty auch.
Ich nicht überall hingehen..
onActivityResult mehtod.Es hat aber nicht gehen.
Was ist falsch in meinem code.
Bitte lassen Sie mich wissen, wenn jemand das weiß...
Vielen Dank im Voraus
- Haben Sie diese Tätigkeit als einzige Aufgabe im manifest? wenn ja, dann onactivity Ergebnis wird nicht funktionieren.
- Ich habe geschrieben activity in der manifest-Datei wie dieser '<Aktivität android:name=".Umsatz.ListProductActivity" android:theme="@android:style/Theme.Dialog"> </Aktivitäts - >' .Ich konnte es nicht bekommen was ist einfache Aufgabe.? bitte helfen Sie mir
- wenn Sie nicht schreiben android:launchMode="singleTask", dann sollte es funktionieren.. schauen Sie dieses Beispiel: saigeethamn.blogspot.com/2009/08/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe das gleiche Problem, wenn ich mit
startActivityForResult()
mitactivity group
.Ihre Tätigkeit Ergebnis gehen wird, um Ihre Aktivitäten der Gruppe.Sie werden keine Aktivität Ergebnis in Ihrer ersten Tätigkeit
So können Sie dieses Problem lösen, indem Sie ein öffentliches statisches Objekt in Ihre erste Aktivität und, wenn Sie anrufen, zweite Aktivität ordnen Sie Ihre erste activity-Objekt aus der zweiten Aktivität.und dann Ende der zweiten Aktivität, so dass Sie Ihre erste Aktivität wird fortgesetzt und Sie können Sie aktualisieren Sie Ihre Benutzeroberfläche durch überschreiben
onResume()
Methode in der ersten Aktivität.Sie haben zu prüfen, die Validierung Wetter Ihr Objekt zugewiesen ist oder nicht.Beispielsweise
Haben Sie ein statisches Objekt Produkt in Ihrem ersten Aktivität
Erste Aktivität
Müssen Sie überschreiben
onResume()
Methode und dann können Sie Produkt-Objekt zugeordnet ist, von der zweiten Aktivitätzweite Aktivität
Nach zuweisen das Produkt Objekt aus, das Sie beenden müssen, zweite Aktivität
wie
BEARBEITEN
Ich habe die Lösung für Ihr Problem der badTokenException
Hier ist die Lösung
KLICKEN SIE HIER