我正在使用Fragment类。 我用
添加它 FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
Search fragment = new Search(maincontrolActivity.this);
fragmentTransaction.add(R.id.mainLayout,fragment , "MY_FRAG");
fragmentTransaction.commit();
this.FragmentObject = fragment
当我刷新控件时,我记得这段代码但通过传递this.FragmentObject
但我认为它是垃圾收集因为=引用同一个对象,而当说添加时,它释放了旧的fragement,这是相同的
所以我需要深层复制或以任何方式刷新?
任何想法
答案 0 :(得分:1)
确定。所以我要做的是定义Interface
,并在点击刷新按钮时让每个Fragment
注册Activity
进行回调。然后在片段本身刷新它的数据。如果这意味着获取新数据,请切换到ProgressBar
,从服务器获取数据,然后重新填充View
。 Here is an entire article Interface
在Activities
中创建Fragment
并从中调用Activity
。
这大致是你的代码看起来像......
public class RefreshActivity extends Activity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
findViewById(R.id.refresh_button).setOnClickListener(this);
}
public interface OnRefreshPressedListener {
public void onRefreshPressed();
}
@Override
public void onClick(View v) {
((OnRefreshPressedListener)this.FragmentObject).onRefreshPressed();
}
}
:
Fragment
public class Search extends Fragment implements OnRefreshPressedListener {
@Override
public void onRefreshPressed() {
//TODO: Refresh your data!
}
}
:
{{1}}