1
爲Android碎片可重複使用的 - 我的意思是,如果我可以像下面使用代碼:Android片段是否可重複使用?
class MyTabActivity extends FragmentActivity implements OnClickListener {
Fragment[] tabs = new Fragment[3];
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.settings_activity);
findViewById(R.id.button1).setOnClickListener(this);
findViewById(R.id.button2).setOnClickListener(this);
findViewById(R.id.button3).setOnClickListener(this);
//first xml-defined fragment, it is inside
//FrameLayout with id R.id.loadTarget -> see openTab()
tabs[0] = getSupportFragmentManager().findFragmentById(
R.id.firstFragment);
}
private void openTab(int i) {
final FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.loadTarget, getTabFragment(i));
ft.addToBackStack(null);
ft.commit();
}
private Fragment getTabFragment(int i) {
if(tabs[i] == null) {
switch(i) {
//0-tab fragment has been allready
//retrieved in onCreate
case 1:
tabs[1] = new MySecondTabFragment();
break;
case 2:
tabs[2] = new MyThirdTabFragment();
break;
}
}
return tabs[i];
}
@Override
public void onClick(View v) {
switch(v.getId()) {
case R.id.button1:
openTab(0);
break;
case R.id.button2:
openTab(1);
break;
case R.id.button3:
openTab(2);
break;
}
}
}
但是,如果我使用'替換',那麼它仍然是合法的存儲參考供將來使用? – 2012-04-26 18:11:38
我是否可以通過'attach/detach'實現與上述相同的操作 - 如果是這樣,怎麼辦? (我不想在xml中放置兩個剩餘的選項卡片段,直到用戶實際單擊相應的選項卡爲止)。我可以「附加」新創建的片段代替現有的片段嗎? – 2012-04-26 18:14:35