2012-09-24 45 views
3

我有一个菜单按钮,开始一个新的活动,当它完成时,用户按下按钮,它将数据写入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(); 
} 

回答

0

的一种方法是使用startActivityForResult(intent, MyStatusCode),然后捕获通过使用类似返回:

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

我试过了,它只是重新开始活动。我将用我目前拥有的代码更新我的问题。 – Rory

+0

onActivityResult()应该放在片段还是我的主要活动中? – Rory

+0

我会用什么来刷新片段?这是一个ListFragment,我尝试调用'adapter.notifyDataSetChanged()',但仍然不刷新列表。 – Rory

2

可以使用 onStart() 这种方法,当片段变得可见或重点调用。

0

的另一种方式来解决这个

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 
}