微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android TabWidget应用程序中的ForceClose错误

如何解决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 举报,一经查实,本站将立刻删除。