3

新しいアクティビティを開始するメニュー ボタンがあり、完了したらユーザーがボタンを押すと、データが SQLite DB に書き込まれ、アクティビティが終了します。しかし、戻ってくる Fragment はその情報を示しており、アクティビティが終了しても更新されません。フラグメントに戻ったときにデータが更新されていることを確認するにはどうすればよいですか?

私は startActivityForResult() を使用しており、以下のコードで結果をキャッチしていますが、それでもフラグメントを更新できません

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    if ((requestCode == MainActivity.MYACTIVITY_REQUEST_CODE) && (resultCode == Activity.RESULT_OK))
        adapter.notifyDataSetChanged();
}
4

3 に答える 3

2

onStart() フラグメントが表示またはフォーカスされたときに呼び出されるこのメソッドを使用できます 。

于 2012-09-25T00:05:38.913 に答える
1

これを解決する別の方法

 public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_message, container, false);}

ビューとアダプターまたは何かを膨らませるだけで、何もしません

 @Override
public void onResume() {
    super.onResume();
    logiMessages.clear();//clear array
    mAdapter.notifyDataSetChanged(); // notify adapter 
    getData(mParam1, mParam2); // getdatas from service 
}
于 2016-03-27T10:13:35.640 に答える
0

これを解決する 1 つの方法は、startActivityForResult(intent, MyStatusCode)を使用してから、次のような方法で戻り値を取得することです。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
  if (requestCode == MyStatusCode) {
     //Refresh the fragment here
  }
}
于 2012-09-24T21:23:06.713 に答える