1

戻るボタンを使用して戻ることにより、前のアクティビティの編集ボタンを表示したい。しかし、私が使用しているとき

        @Override
            public void onClick(View arg0) {
                // finish the current activity
                finish();

            }

現在のアクティビティでは、前のアクティビティに戻りますが、編集ボタンが表示されません。

onResume以前のアクティビティで使用している場合

@Override
    protected void onResume() {
        super.onResume();
        btnEdit.setVisibility(View.VISIBLE);

    }

アクティビティが再開されているか、初めて作成されているかに関係なく、常に表示されます。

私はAndroid開発に不慣れです、この問題を解決するのを手伝ってください。

4

3 に答える 3

0

終了時にtrueに設定できるブール変数を作成し、onResumeメソッドでこのブール値を使用してチェックを行うことができます。

于 2012-10-10T13:17:05.357 に答える
0

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);

}
于 2012-10-10T13:19:07.710 に答える
0

Ok、

アクティビティを開始するときは、startActivity(intent)使用する代わりにstartActivityForResult(intent, 1989)(1989は任意のintにすることができます)。

新しいアクティビティから戻るときは、呼び出す前に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();

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

                }
            }
    }
于 2012-10-10T13:25:45.900 に答える