TAB小部件应用程序中的强制关闭错误我正在使用http://developer.android.com/resources/tutorials/views/hello-tabwidget.html上的教程创建TAB视图。我想在每个选项卡中显示不同的列表。我在单独的活动中创建了每个列表,并通过创建新的intent实例来调用它,然后将它传递给setcontent();以下是TabWidget.java的代码
package com.TabWidget;
import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.widget.TabHost;
public class TabWidget extends TabActivity {
static final String[] COUNTRIES = new String[] {
"Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra",
"Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina",
"Armenia", "Aruba", "Australia", "Austria", "Azerbaijan",
"Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium"
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TabHost mTabHost = getTabHost();
Resources res = getResources();
Intent aIntent = new Intent(this, a.class);
Intent bIntent = new Intent(this, b.class);
Intent cIntent = new Intent(this, c.class);
mTabHost.addTab(mTabHost.newTabSpec("A").setIndicator("A", res.getDrawable(R.drawable.icon)).setContent(aIntent));
mTabHost.addTab(mTabHost.newTabSpec("B").setIndicator("B", res.getDrawable(R.drawable.icon)).setContent(bIntent));
mTabHost.addTab(mTabHost.newTabSpec("C").setIndicator("C", res.getDrawable(R.drawable.icon)).setContent(cIntent));
mTabHost.setCurrentTab(1);
}
}A.java
package com.TabWidget;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class A extends Activity {
static final String[] COUNTRIES = new String[] {
"Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra",
"Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina",
"Armenia", "Aruba", "Australia", "Austria", "Azerbaijan",
"Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium"
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ListView list=(ListView)findViewById(R.id.countries);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, COUNTRIES);
list.setAdapter(adapter);
setContentView(R.layout.tab1);
}
}主.xml
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<include layout="@layout/tab1"/>
<include layout="@layout/tab2"/>
<include layout="@layout/tab3"/>
</FrameLayout>
</LinearLayout>
</TabHost>我是android开发的新手,对UI开发感兴趣。提前谢谢。
发布于 2011-04-14 19:54:14
在使用setContentView()设置任何内容之前,您要尝试在A.onCreate()中查找视图。因此,list为null,并且您将在第行获得一个NullPointerException (NPE
list.setAdapter(adapter);在LogCat中查看此内容,了解如何查找问题。LogCat是一个无价的工具。
https://stackoverflow.com/questions/5662446
复制相似问题