0
我是Android開發新手,我想讓應用程序具有標題,正文和頁腳,並通過單擊頁腳中的某個按鈕,將一些佈局加載到正文中。我用here所描述的某種「MasterPage」。 按下按鈕時既沒有加載new_exercise
佈局,也沒有exercises
佈局。爲什麼?也許而不是所有這些,我應該使用任何類型的選項卡?或者,也許我不能誇大佈局,應該創造新的活動?爲什麼要在Android中將佈局充氣到另一個佈局?
這裏BaseActivity和NewExercise活動代碼:
public class BaseActivity extends Activity{
LinearLayout linBaseBody;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.base_layout);
linBaseBody = (LinearLayout)findViewById(R.id.base_body);
initButtons();
}
@Override
public void setContentView(int id) {
LayoutInflater inflater = (LayoutInflater)getBaseContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(id, linBaseBody);
}
private void initButtons()
{
Button btn1 = (Button) findViewById(R.id.newEx);
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
setContentView(R.layout.new_exercise);
}
});
Button btn2 = (Button) findViewById(R.id.showAllEx);
btn2.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
setContentView(R.layout.exercises);
}
});
}
public class NewExercise extends BaseActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.new_exercise);
}
}
public class Exercises extends BaseActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.exercises);
}
}
每次點擊創建新活動不會太重,或者我應該讓GC擔心這一點? – theateist 2012-03-05 20:54:45
這取決於你在每個活動中的具體計劃。但是,在所有可能的情況下,不,在GC上它不會太重,或者更準確地說,它不應該干擾用戶體驗。 – AedonEtLIRA 2012-03-05 20:57:45
所有我想要做的是某種標籤(當我想到它了!),當每個標籤有不同的功能,但所有標籤將具有相同的標題,如我的文章中所述。那麼使用'TabHost'(或別的什麼?)會更好,而不是試圖在一個活動中擴充佈局? – theateist 2012-03-05 21:08:57