片段的深拷贝

时间:2012-07-22 19:05:12

标签: android android-fragments deep-copy

我正在使用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,这是相同的

所以我需要深层复制或以任何方式刷新?

任何想法

1 个答案:

答案 0 :(得分:1)

确定。所以我要做的是定义Interface,并在点击刷新按钮时让每个Fragment注册Activity进行回调。然后在片段本身刷新它的数据。如果这意味着获取新数据,请切换到ProgressBar,从服务器获取数据,然后重新填充ViewHere is an entire article InterfaceActivities中创建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}}