Android中具有动态选项卡内容的动态选项卡

Android中具有动态选项卡内容的动态选项卡,android,listview,tabs,Android,Listview,Tabs,我想在Android中动态创建一个选项卡,每个选项卡下都有一个listview。因此,我希望listview的内容也能动态更改。我怎样才能做到这一点呢?我在另一个论坛上看到了一段代码,并对它进行了一些清理。要做您需要的事情,您必须更改ts1.setContent和ts2.setContent中的内容 主屏幕.java import android.app.Activity; import android.os.Bundle; import android.view.View; import an

我想在Android中动态创建一个选项卡,每个选项卡下都有一个listview。因此,我希望listview的内容也能动态更改。我怎样才能做到这一点呢?

我在另一个论坛上看到了一段代码,并对它进行了一些清理。要做您需要的事情,您必须更改ts1.setContent和ts2.setContent中的内容

主屏幕.java

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;

public class Main_screen extends Activity{

    private ListView ls1;
    private ListView ls2;   
    private TabHost myTabHost;

    @Override
    public void onCreate(Bundle icicle)
    {
        super.onCreate(icicle);
        setContentView(R.layout.main);

        myTabHost = (TabHost)this.findViewById(R.id.th_set_menu_tabhost); 
        myTabHost.setup();

        ls1 = new ListView(Main_screen.this);       
        TabSpec ts1 = myTabHost.newTabSpec("TAB_TAG_1");
        ts1.setIndicator("Tab1");
        ts1.setContent(new TabHost.TabContentFactory(){
            public View createTabContent(String tag)
            {                                   
                ArrayAdapter<String> adapter = new ArrayAdapter<String>(Main_screen.this,android.R.layout.simple_list_item_1,new String[]{"item1","item2","item3"});
                ls1.setAdapter(adapter);    
                return ls1;
            }       
        });
        myTabHost.addTab(ts1);

        ls2 = new ListView(Main_screen.this);
        TabSpec ts2 = myTabHost.newTabSpec("TAB_TAG_2");
        ts2.setIndicator("Tab2");
        ts2.setContent(new TabHost.TabContentFactory(){
            public View createTabContent(String tag)
            {                                   
                ArrayAdapter<String> adapter = new ArrayAdapter<String>(Main_screen.this,android.R.layout.simple_list_item_1,new String[]{"item4","item5","item6"});
                ls2.setAdapter(adapter);    
                return ls2;
            }       
        });     
        myTabHost.addTab(ts2);
    }       
}
导入android.app.Activity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
导入android.widget.TabHost;
导入android.widget.TabHost.TabSpec;
公共类主屏幕扩展活动{
私有ListView ls1;
私有ListView ls2;
私有TabHost-myTabHost;
@凌驾
创建公共空间(捆绑冰柱)
{
超级冰柱;
setContentView(R.layout.main);
myTabHost=(TabHost)this.findviewbyd(R.id.th\u set\u menu\u TabHost);
myTabHost.setup();
ls1=新的列表视图(主屏幕。此);
TabSpec ts1=myTabHost.newTabSpec(“TAB_TAG_1”);
ts1.设置指示器(“Tab1”);
ts1.setContent(新的TabHost.TabContentFactory(){
公共视图createTabContent(字符串标记)
{                                   
ArrayAdapter=newArrayAdapter(主屏幕。这是android.R.layout.simple_list_item_1,新字符串[]{“item1”、“item2”、“item3”});
ls1.设置适配器(适配器);
返回ls1;
}       
});
myTabHost.addTab(ts1);
ls2=新的列表视图(主屏幕。此);
TabSpec ts2=myTabHost.newTabSpec(“TAB_TAG_2”);
ts2.设置指示器(“Tab2”);
ts2.setContent(新的TabHost.TabContentFactory(){
公共视图createTabContent(字符串标记)
{                                   
ArrayAdapter=newArrayAdapter(主屏幕。这是android.R.layout.simple_list_item_1,新字符串[]{“item4”、“item5”、“item6”});
ls2.设置适配器(适配器);
返回ls2;
}       
});     
myTabHost.addTab(ts2);
}       
}
main.xml

<?xml version="1.0" encoding="utf-8"?> 
    <TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
        android:id="@+id/th_set_menu_tabhost" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent">

     <TabWidget 
          android:id="@android:id/tabs" 
          android:layout_width="fill_parent" 
          android:layout_height="64dip" />

     <FrameLayout 
          android:id="@android:id/tabcontent" 
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent"
          android:paddingTop="75dip">  

          <ListView
              android:id = "@+id/danhsach"
              android:layout_width="fill_parent" 
              android:layout_height="fill_parent" />

     </FrameLayout> 
</TabHost>

我在另一个论坛上看到了一个代码,并对它进行了一些清理。要做您需要的事情,您必须更改ts1.setContent和ts2.setContent中的内容

主屏幕.java

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;

public class Main_screen extends Activity{

    private ListView ls1;
    private ListView ls2;   
    private TabHost myTabHost;

    @Override
    public void onCreate(Bundle icicle)
    {
        super.onCreate(icicle);
        setContentView(R.layout.main);

        myTabHost = (TabHost)this.findViewById(R.id.th_set_menu_tabhost); 
        myTabHost.setup();

        ls1 = new ListView(Main_screen.this);       
        TabSpec ts1 = myTabHost.newTabSpec("TAB_TAG_1");
        ts1.setIndicator("Tab1");
        ts1.setContent(new TabHost.TabContentFactory(){
            public View createTabContent(String tag)
            {                                   
                ArrayAdapter<String> adapter = new ArrayAdapter<String>(Main_screen.this,android.R.layout.simple_list_item_1,new String[]{"item1","item2","item3"});
                ls1.setAdapter(adapter);    
                return ls1;
            }       
        });
        myTabHost.addTab(ts1);

        ls2 = new ListView(Main_screen.this);
        TabSpec ts2 = myTabHost.newTabSpec("TAB_TAG_2");
        ts2.setIndicator("Tab2");
        ts2.setContent(new TabHost.TabContentFactory(){
            public View createTabContent(String tag)
            {                                   
                ArrayAdapter<String> adapter = new ArrayAdapter<String>(Main_screen.this,android.R.layout.simple_list_item_1,new String[]{"item4","item5","item6"});
                ls2.setAdapter(adapter);    
                return ls2;
            }       
        });     
        myTabHost.addTab(ts2);
    }       
}
导入android.app.Activity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
导入android.widget.TabHost;
导入android.widget.TabHost.TabSpec;
公共类主屏幕扩展活动{
私有ListView ls1;
私有ListView ls2;
私有TabHost-myTabHost;
@凌驾
创建公共空间(捆绑冰柱)
{
超级冰柱;
setContentView(R.layout.main);
myTabHost=(TabHost)this.findviewbyd(R.id.th\u set\u menu\u TabHost);
myTabHost.setup();
ls1=新的列表视图(主屏幕。此);
TabSpec ts1=myTabHost.newTabSpec(“TAB_TAG_1”);
ts1.设置指示器(“Tab1”);
ts1.setContent(新的TabHost.TabContentFactory(){
公共视图createTabContent(字符串标记)
{                                   
ArrayAdapter=newArrayAdapter(主屏幕。这是android.R.layout.simple_list_item_1,新字符串[]{“item1”、“item2”、“item3”});
ls1.设置适配器(适配器);
返回ls1;
}       
});
myTabHost.addTab(ts1);
ls2=新的列表视图(主屏幕。此);
TabSpec ts2=myTabHost.newTabSpec(“TAB_TAG_2”);
ts2.设置指示器(“Tab2”);
ts2.setContent(新的TabHost.TabContentFactory(){
公共视图createTabContent(字符串标记)
{                                   
ArrayAdapter=newArrayAdapter(主屏幕。这是android.R.layout.simple_list_item_1,新字符串[]{“item4”、“item5”、“item6”});
ls2.设置适配器(适配器);
返回ls2;
}       
});     
myTabHost.addTab(ts2);
}       
}
main.xml

<?xml version="1.0" encoding="utf-8"?> 
    <TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
        android:id="@+id/th_set_menu_tabhost" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent">

     <TabWidget 
          android:id="@android:id/tabs" 
          android:layout_width="fill_parent" 
          android:layout_height="64dip" />

     <FrameLayout 
          android:id="@android:id/tabcontent" 
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent"
          android:paddingTop="75dip">  

          <ListView
              android:id = "@+id/danhsach"
              android:layout_width="fill_parent" 
              android:layout_height="fill_parent" />

     </FrameLayout> 
</TabHost>


for(int i=0;i
for)(int i=0;i)对这个答案的解释,以及为什么它可能是一个答案,对那些后来发现这个答案的人是有用的。对这个答案的解释,以及为什么它可能是一个答案,对那些后来发现这个答案的人是有用的。