Android中具有动态选项卡内容的动态选项卡
我想在Android中动态创建一个选项卡,每个选项卡下都有一个listview。因此,我希望listview的内容也能动态更改。我怎样才能做到这一点呢?我在另一个论坛上看到了一段代码,并对它进行了一些清理。要做您需要的事情,您必须更改ts1.setContent和ts2.setContent中的内容 主屏幕.javaAndroid中具有动态选项卡内容的动态选项卡,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
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;ifor)(int i=0;i)对这个答案的解释,以及为什么它可能是一个答案,对那些后来发现这个答案的人是有用的。对这个答案的解释,以及为什么它可能是一个答案,对那些后来发现这个答案的人是有用的。