如何解决将TabHost扩展到linearLayout
| 我试图添加一个标签以添加linearLayout。这是我写的代码。package android.warna;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.util.TypedValue;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.TabHost;
import android.widget.TabWidget;
import android.widget.TextView;
public class XmlTabView extends LinearLayout{
View view;
public XmlTabView(Context context) {
super(context);
view = new View(context);
view = createTab(context);
this.addView(view);
}
private android.view.ViewGroup createTab(final Context context) {
TabHost tabHost = new TabHost(context);
tabHost.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
TabWidget tabWidget = new TabWidget(context);
tabWidget.setId(android.R.id.tabs);
tabHost.addView(tabWidget,new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
FrameLayout frameLayout = new FrameLayout(context);
frameLayout.setId(android.R.id.tabcontent);
frameLayout.setPadding(0,65,0);
tabHost.addView(frameLayout,LayoutParams.FILL_PARENT));
tabHost.setup();
TabHost.TabSpec tabChild1 = tabHost.newTabSpec(\"Child_1\");
tabChild1.setIndicator(\"Child 1\");
tabChild1.setContent(new TabHost.TabContentFactory() {
public View createTabContent(String tag) {
TextView txt = new TextView(context);
txt.setText(\"Test Child 1\");
txt.setTextSize(TypedValue.COMPLEX_UNIT_SP,12f);
txt.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
return txt;
}
});
tabHost.addTab(tabChild1);
**Resources res = getResources();
Intent intent = new Intent().setClass(context,LinearLayOut.class);
TabHost.TabSpec spec = tabHost.newTabSpec(\"country\").setIndicator(\"country\",res.getDrawable(R.drawable.ic_tab_artists))
.setContent(intent);**
tabHost.addTab(spec);
TabHost.TabSpec tabChild3 = tabHost.newTabSpec(\"Child_3\");
tabChild3.setIndicator(\"Child 3\");
tabChild3.setContent(new TabHost.TabContentFactory() {
public View createTabContent(String tag) {
TextView txt = new TextView(context);
txt.setText(\"Test Child 3\");
txt.setTextSize(TypedValue.COMPLEX_UNIT_SP,LayoutParams.FILL_PARENT));
return txt;
}
});
tabHost.addTab(tabChild3);
return tabHost;
}
}
它正在工作。但是问题是我无法调用以下活动。
**Resources res = getResources();
Intent intent = new Intent().setClass(context,LinearLayOut.class);
TabHost.TabSpec spec = tabHost.newTabSpec(\"country\").setIndicator(\"country\",res.getDrawable(R.drawable.ic_tab_artists))
.setContent(intent);**
如果我为该标签页调用了一项活动,则该活动无效。
任何人都可以回答这个问题吗?
解决方法
TabSpec.setContent()
需要View
,因为您使用的是Layout
,所以我相信您想要TabSpec.setContentView()
(以布局作为内容)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。