Ich arbeite an Katalog-Projekt. MainActivity zum Auflisten von Produkten und ViewProductActivity zum Anzeigen oder Bearbeiten von Produkten. In ViewProductActivity gibt es die Schaltfläche "Cancel", um die ViewProductActivity zu schließen und dann zu MainActivity zurückzukehren. Außerdem gibt es das Optionsmenü "Delete", um mein Produkt aus der Datenbank zu löschen. Wenn ich auf "Abbrechen" klicke, funktioniert das problemlos und die onResume-Methode von MainActivity wird aufgerufen. Aber wenn ich nach dem Löschvorgang auf das Optionsmenü 'delele' klicke, kehrt die App zu MainActivity zurück. Aber das Problem ist MainActivity onResume überhaupt nicht aufgerufen. Ich habe sichergestellt, dass es Log verwendet.onResume nicht nach dem Aufruf von finish() auf andere Aktivität in anderen Klasse
Ich habe mir this und andere Bedrohung, aber nicht die Antwort bekommen Hier ist das Stück des Codes.
MainActivity des
@Override
protected void onResume() {
super.onResume();
Log.i("zihad", "onResume");
if (isInternetAvailable()) {
myCatalogData.arrayAdapterAllData(myListAdapter);
} else {
Toast.makeText(this, "No internet connection", Toast.LENGTH_SHORT).show();
}
}
ViewProductActivity
btCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
requestQueue = Volley.newRequestQueue(this);
CatalogDataHelper myCatalogData = new CatalogDataHelper(this, requestQueue);
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.action_delete) {
new AlertDialog.Builder(this)
.setTitle("Confirmation")
.setMessage("Do you really want to delete this product?")
.setIcon(android.R.drawable.ic_dialog_alert)
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if (isInternetAvailable()) {
myCatalogData.deleteProduct(String.valueOf(idProduct));
} else {
Toast.makeText(ViewProductActivity.this, "No internet Connection", Toast.LENGTH_SHORT).show();
}
}})
.setNegativeButton(android.R.string.no, null)
.show();
return true;
}
return super.onOptionsItemSelected(item);
}
CatalogDataHelper
public CatalogDataHelper(final Activity activity, RequestQueue requestQueue) {
this.activity = activity;
this.requestQueue = requestQueue;
}
public void deleteProduct(final String id) {
final ProgressDialog progressDialog = ProgressDialog.show(activity, "Deleting product", "Please wait ...");
StringRequest myStringRequest = new StringRequest(Request.Method.POST, MainActivity.URL_SERVER + "/deleteproduct.php",
new Response.Listener<String>() {
@Override
public void onResponse(String jsonResponse) {
progressDialog.dismiss();
try {
JSONObject jObject = new JSONObject(jsonResponse);
if (jObject.getBoolean("success")) {
Toast.makeText(activity, "Product has been deleted", Toast.LENGTH_SHORT).show();
activity.finish(); //close ViewProductActivity and return to MainActivity
}
} catch (JSONException e) {
Toast.makeText(activity, "Server error", Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
progressDialog.dismiss();
show_error(error);
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> mapParam = new HashMap<>();
mapParam.put("id", id);
return mapParam;
}
};
requestQueue.add(myStringRequest);
}
sind' nicht genannt? können Sie den Code posten .. – ZeroOne
Willkommen bei StackOverflow. Bitte [** LESEN SIE DIESE **] (http://stackoverflow.com/help/how-to-ask) zuerst, bevor Sie sich nach einer Programmierfrage erkundigen. Oder sonst, hoffe nicht, eine richtige Antwort zu bekommen. – poring91