从活动回来后如何刷新片段?

时间:2012-09-24 21:03:37

标签: android actionbarsherlock

我有一个启动新活动的菜单按钮,当用户按下按钮时,它会将数据写入SQLite数据库并完成活动。但它返回的片段显示信息,并且在活动结束时不会令人耳目一新。当我回到片段时,如何确保刷新数据?

我正在使用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();
}

3 个答案:

答案 0 :(得分:2)

你可以用 onStart() 当片段变得可见或焦点时调用此方法。

答案 1 :(得分: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 
}

答案 2 :(得分:0)

解决此问题的一种方法是使用startActivityForResult(intent, MyStatusCode)然后使用以下内容捕获返回值:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
  if (requestCode == MyStatusCode) {
     //Refresh the fragment here
  }
}