尝试以编程方式创建基于视图的tabhost,但我从下面粘贴的npe获取了一个fc。 我可以用findbyid找到视图。 我错过了什么?感谢。
public class tabs_view extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TabHost th=new TabHost(this);
Button b=new Button(this);
b.setId(1001);
b.setText("1");
th.addView(b);
TabHost.TabSpec ts=th.newTabSpec("1");
ts.setIndicator("1");
ts.setContent(1001); //nullpointer exception originates here (line 27)
th.addTab(ts);
setContentView(th);
/*
RuntimeException: Unable to start activity ComponentInfo{...}: java.lang.NullPointerException
E/AndroidRuntime(11234): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
...
E/AndroidRuntime(11234): Caused by: java.lang.NullPointerException
E/AndroidRuntime(11234): at android.widget.TabHost$ViewIdContentStrategy.<init>(TabHost.java:583)
E/AndroidRuntime(11234): at android.widget.TabHost$ViewIdContentStrategy.<init>(TabHost.java:578)
E/AndroidRuntime(11234): at android.widget.TabHost$TabSpec.setContent(TabHost.java:435)
E/AndroidRuntime(11234): tabs_view.onCreate(tabs_view.java:27)
*/
}
}
答案 0 :(得分:0)
您是否尝试过使用自动资源机制,而不是进行额外的ID查找工作?或者尝试将标签拉入主要活动的单独TabActivity
。
th.addTab(th.newTabSpec("1")
.setIndicator("1")
.setContent(R.id.view1));
您可以查看API演示代码:Tab sample code