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

解决此问题的一种方法是使用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 回答