Android ExpandableListActivity和TabActivity在同一个类中

时间:2012-06-04 10:54:54

标签: android expandablelistview expandablelistadapter

我正在尝试在程序中使用ExpandableListActivity,但我已经在我的类中继承了TabActivity。我不能做多重继承,我需要在我的程序中使用ExpandableListView和Tabs。 我在这里查看了Google的ExpandableListView代码http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ExpandableList1.html

但是在这里他们继承了我无法做的ExpandableListActivity,因为我已经在我的班级中继承了TabActivity。

我知道我可以使用ListView而不在我的类中继承ListActivity。我也可以为ExpandableListView类做同样的事情吗?如果是这样,那么任何人都可以提供任何示例代码来使用ExtendableListView而不继承活动吗?

1 个答案:

答案 0 :(得分:2)

您可以拥有一个扩展ExpandableListView的自定义视图,并在TabActivity中使用它。

可扩展列表视图

  public class CustomExpListView extends ExpandableListView{
          /** Your code **/
     }

托管标签的主要活动

public class MyTabActivity extends TabActivity{
    private TabHost tabhost;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          tabHost = getTabHost();
          tabHost.addTab(tabHost
                .newTabSpec("Tab 1")
                .setIndicator("Tab 1",
                        this.getResources().getDrawable(
                                R.drawable.tab_icon))
                .setContent(new Intent(this, Tab1.class)));

      /** Further code**/
    }
  }

带有exp列表的选项卡的XML布局文件(选项卡1)

/**Other layout stuff goes here**/
<com.jmango.nexus.view.ProductListView
        android:layout_width="fill_parent"
                    android:layout_height="wrap_content" 
                    android:groupIndicator="@drawable/group_indicator"
        android:childIndicator="@drawable/child_indicator"
        android:cacheColorHint="#00000000" 
                    android:divider="#00BBFF"
                    android:childDivider="@android:drawable/divider_horizontal_dark"
        android:smoothScrollbar="true"
        android:id="@+id/exp_list_view"/>

带有exp列表的选项卡的类

CustomExpListView custExpListView = (CustomExpListView) this
            .findViewById(R.id.exp_list_view);

您还可以扩展侦听器并对其进行自定义。

希望它有所帮助!