1

アクティビティ A が 1 つあります。これには、1 つのボタンと、書籍の名前を表示する 1 つのリスト ビューがあります。ボタンをクリックすると、アクティビティ B が開始され、そこでユーザーは本のフォームに入力して保存します。戻るボタンを押すと、ユーザーはアクティビティ A に移動します。ここで本の名前をリストビューで更新する必要があります。onResume() にコードを書く必要があると思います。何を書くべきか教えてください。カスタマイズされたリスト ビューを使用しています。

4

3 に答える 3

0

でアクティビティBを開始しstartActivityForResult()、メソッドonActivityResult()を使用して新しいデータを再起動または処理します

たとえば、アクティビティBを開始するには:

String callingActivity = context.getLocalClassName();
Intent newActivity = new Intent(getApplicationContext(),ActivityB.class);
newActivity.setData(Uri.parse(callingActivity));
startActivityForResult(newActivity, 0);

次に、アクティビティAクラスのどこかで:

protected void onActivityResult(int requestCode, int resultCode, Intent data){
        if(requestCode == 0){
            // do processing here
        }
    }

他の答えで十分ですが、アクティビティが他の手段で再開された場合は、onResume()を呼び出すことができます。

ユーザーがアクティビティBから戻るボタンを押したときにアクティビティAを再起動するには、onActivityResult内に次のように入力します。

if(requestCode == 0){
            finish();
            startActivity(starterintent);

        }

そして、アクティビティAのonCreateに、starterintent = getIntent();

Intent starterintent;onCreateが呼び出される前に、どこかで変数を開始することを忘れないでください。

例えば

public class ActivityA extends ListActivity {
  Intent starterintent;

  public void onCreate(Bundle b){
    starterintent = getIntent();
  }

  protected void onActivityResult(int requestCode, int resultCode, Intent data){
    if(requestCode == 0){
      finish();
      startActivity(starterintent);
    }
  }

  private void startActivityB(){
    String callingActivity = context.getLocalClassName();
    Intent newActivity = new Intent(getApplicationContext(),ActivityB.class);
    newActivity.setData(Uri.parse(callingActivity));
    startActivityForResult(newActivity, 0);
  }

}

次にstartActivityB()、ボタンクリックなどから電話をかけます

于 2011-10-21T10:09:29.827 に答える