我正在研究目录项目。用于列出产品的MainActivity和用于查看或编辑产品的ViewProductActivity。在ViewProductActivity中有“取消”按钮,只需关闭ViewProductActivity然后返回MainActivity,还有“删除”选项菜单从数据库中删除我的产品。如果我单击取消按钮它没有问题,并调用MainActivity的onResume方法。但是当我点击“拒绝”选项菜单后,在删除过程后,应用程序将返回到MainActivity。但问题是MainActivity的onResume根本没有被调用。我确保它使用Log。
我看了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);
}
答案 0 :(得分:0)
您应该在ViewProductActivity类中尝试此代码: -
Intent i = new Intent(ViewProductActivity.this, MainActivity.class);
startActivity(i);
ViewProductActivity.this.finish();
答案 1 :(得分:0)
您是否在onResume()中调用了super.onResume()
?
下面给出了处理 onResume 的正确方法
@Override
protected void onResume() {
//Your code to finish activity
super.onResume();
}