如何解决android TabWidget应用程序中的ForceClose错误
| 在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\",\"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开发感兴趣。
提前致谢。
解决方法
在
A.onCreate()
中,您尝试先找到一个视图,然后再用setContentView()
设置任何内容。因此,list
为空,您在行上得到line6ѭ(NPE)
list.setAdapter(adapter);
在LogCat中进行检查,以了解如何查找问题。 LogCat是无价的工具。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。