2012-07-29 109 views
2

我正在學習爲android開發,但我不知道如何爲片段創建UI。 我創建了一個新的活動,在創建過程中,我選擇了導航類型「選項卡+滑動」。 現在我有一個佈局xml,我無法使用WYSIWYG接口進行修改,並且如果我 - 例如 - 在類文件中使用java創建按鈕小部件,它會在每個「選項卡視圖」中創建它。如何爲選項卡式活動的每個選項卡創建UI?

我基本上想爲每個選項卡(片段)創建不同的接口。

謝謝

回答

12

在剛創建活動,你可以找到內部類SectionsPagerAdapter。看看這種方法:

@Override 
public Fragment getItem(int i) { 
    Fragment fragment = new DummySectionFragment(); 
    Bundle args = new Bundle(); 
    args.putInt(DummySectionFragment.ARG_SECTION_NUMBER, i + 1); 
    fragment.setArguments(args); 
    return fragment; 
} 

此方法爲每個選項卡返回DummySectionFragment的實例只有不同的捆綁。如果要爲每個選項卡創建具有不同視圖的片段,則應檢查變量值i,並根據此值創建適當的片段。例如:

@Override 
public Fragment getItem(int i) { 
    Fragment fragment; 
    switch(i){ 
    case 0: 
     fragment = new MyFragment1(); 
     break; 
    case 1: 
     fragment = new MyFragment2(); 
     break; 
    case 3: 
     fragment = new MyFragment3(); 
     break; 
    default: 
     throw new IllegalArgumentException("Invalid section number"); 
    } 

    //set args if necessary 
    Bundle args = new Bundle(); 
    args.putInt(DummySectionFragment.ARG_SECTION_NUMBER, i + 1); 
    fragment.setArguments(args); 

    return fragment; 
} 

相反DummySectionFragment的類中創建三個類:MyFragment1,MyFragment2,MyFragment2並且對於每個,內部方法onCreateView創建或膨脹視圖,例如:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
    Bundle savedInstanceState) { 
    View v = inflater.inflate(R.layout.my_fragment1.xml, null); 
    return v; 

}

其中R.layout.my_fragment1.xml是MyFragment1片段的佈局。

+0

真的很感謝你。有用! – Boris 2012-07-29 14:15:36

+0

片段子類必須是「靜態」嗎? – 2013-07-31 23:48:14

+0

如果您詢問MyFragment1,MyFragment2等,這些只是擴展'Fragment'的公共類,每個都在分開的java文件中。 – Leszek 2013-08-01 18:06:35

相關問題