我正在編制目錄項目。用於列出產品的MainActivity和用於查看或編輯產品的ViewProductActivity。在ViewProductActivity中有「取消」按鈕來關閉ViewProductActivity,然後返回到MainActivity,還有「刪除」選項菜單從數據庫中刪除我的產品。如果我點擊取消按鈕它沒有問題,MainActivity的onResume方法被調用。但是當我點擊'detele'選項菜單,刪除過程後,應用程序將返回到MainActivity。但問題是MainActivity的onResume根本沒有被調用。我確保使用Log。onResume在調用完其他類中的其他活動的finish()後不會調用
我看過this和其他威脅,但沒有得到答案 這是一段代碼。
MainActivity的
@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);
}
給予你肯定的方式'的onResume()'不叫?你能發佈代碼嗎? – ZeroOne
歡迎來到StackOverflow。在詢問有關編程問題之前,請先[**閱讀本文**](http://stackoverflow.com/help/how-to-ask)。否則,不要希望得到正確的答案。 – poring91