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