0

TabHost を使用してアクティビティ クラスでタブを使用しています。

TabHost tabHost=(TabHost)findViewById(R.id.tabHost);
tabHost.setup();
Test testObj = new Test(this);
spec2=tabHost.newTabSpec("Tab 2");
spec2.setIndicator("Tab 2");
spec2.setContent(testObj);

そして、各ビューは、TabFactory を実装するビューに割り当てられます。

public class Test implements TabContentFactory {
@Override
public View createTabContent(String arg0) {

    v = mInflater.inflate(R.layout.activity_tab1, null);

    /**
     * Add your code here for buttons/list etc
     * An object lookup for your Button: 
     */
    b = (Button)v.findViewById(R.id.button1);

    b.setOnClickListener(this);
    return v;
}
public void setListViewNames() {
   //create a custom list view
}
public void setDetailedView() {
   //opens another detailed view when user clicks on any item on the list
   //here i use ViewGroup to remove the first view created in setListViewNames()
}
}

ボタンをクリックすると、listView が作成されます。任意の項目をクリックすると、別の listView が表示されます。最初の listView は次のように削除されます。

ViewGroup viewGroup = (ViewGroup) v.getParent();
viewGroup.removeView(v);
View v1 = mInflater.inflate(R.layout.custom_fullpicture, null);
viewGroup.addView(v1);

しかし、タブ 1 に移動してからタブ 2 をクリックすると、次のエラーがスローされます。

E/AndroidRuntime(1668): at android.widget.TabHost$FactoryContentStrategy.tabClosed        
(TabHost.java:658)

タブ内を効果的に移動するにはどうすればよいですか? クリックするたびにタブ ビューをリロードする方法が見つかりませんでした。

何かご意見は?

前もって感謝します!

4

0 に答える 0