2011-10-21 10 views
1

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

答えて

0

スタート活動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()を呼び出すことができます。ただに覚えstarterintent = getIntent();

を追加し、

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

     } 

と活動AののonCreateに:

、ユーザがアクティビティBから戻るボタンを押したときに、単に活動Aを再起動するには、その後、onActivityResult内で次を置きます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()を呼び出すか、どんな

+0

私は、データを送信する方法、送信する必要がある場合はアクティビティBからデータを送信する必要があります。 –

+0

@prabhuMは、データの格納方法によって異なります。それがデータベースに保存されている場合、ファイルに保存されている場合、またはsharedpreferencesにされている場合は、いいえ、アクティビティAは、ユーザーが実際にアクティビティBにデータを保存してから戻ることができます。とにかく、私はバックボタンアクションを通してデータを渡す方法についてはわかりません。 – aperture

0

はい、あなたは正しいです。 onResumeにコードを書く。

日付を更新したときには、と呼びます。notifyDataSetChanged();あなたのListViewアダプタのため

希望、それはあなたを助ける!

0

ユーザーが[保存]を押したときにアクティビティを開始すると、それを修正することができます。 それとも、戻って押します:アクティビティBを開始するために、例えば

新しいデータを再起動するか、または処理するためstartActivityForResult()と使用方法onActivityResult()

@Override 
public void onResume(){ 
    super.onResume(); 
    list.clear(); 
    list.addAll(getBooks()); 
    adapter.notifyDataSetChanged(); 
} 
関連する問題