[英]Show a button on a previous activity when going back from current activity
我想通過使用后退按鈕返回來查看上一個活動中的編輯按鈕。 但是當我使用
@Override
public void onClick(View arg0) {
// finish the current activity
finish();
}
在我當前的活動中,它可以返回到上一個活動,但是“編輯”按鈕不可見。
如果我在上一個活動中使用onResume
@Override
protected void onResume() {
super.onResume();
btnEdit.setVisibility(View.VISIBLE);
}
那么無論活動是第一次恢復還是首次創建,它總是可見的。
我是Android開發的新手,請幫助我解決此問題。
您可以創建一個布爾變量,完成后可以將其設置為true,並在onResume方法中對此布爾值進行檢查
重寫onRestart()方法
@Override
protected void onRestart () {
super.onResume();
btnEdit.setVisibility(View.VISIBLE);
}
或開始活動
startActivityForResult (Intent intent, int requestCode)
方法和覆蓋
@Override
protected void onActivityResult (int requestCode, int resultCode, Intent data){
super.onActivityResult (requestCode,resultCode,data);
btnEdit.setVisibility(View.VISIBLE);
}
好,
當您啟動Activity時,請使用startActivityForResult(intent, 1989)
而不是startActivity(intent)
startActivityForResult(intent, 1989)
(1989可以是您想要的任何int值)。
從新的Activity返回時,在調用finish()
之前,請執行以下操作:
Intent returnIntent = new Intent();
returnIntent.putExtra("resultBool", true);
//Null checks, not strictly neccescary
if (getParent() == null)
{
setResult(Activity.RESULT_OK, returnIntent);
}
else
{
getParent().setResult(Activity.RESULT_OK, returnIntent);
}
finish();
然后在您的第一個Activity中覆蓋onActivityResult()
如下所示:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
// The int you initially used
if (requestCode == 1989)
{
if (resultCode == RESULT_OK)
{
boolean result = data.getBooleanExtra("resultBool", false)
if (result)
//Show the button now
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.