2011-04-14 8 views
0

TAB 위젯 응용 프로그램에서 강제 닫기 오류 http://developer.android.com/resources/tutorials/views/hello-tabwidget.html에서 자습서를 사용하여 Tab보기를 만듭니다. 각 탭마다 다른 목록을 표시하고 싶습니다. 별도의 활동으로 각 목록을 작성하고 새로운 인 텐트 인스턴스를 작성하여이를 호출 한 다음이를 setcontent()로 전달합니다. 다음 는 TabWidget.java안드로이드 TabWidget 응용 프로그램에서 ForceClose 오류가 발생했습니다.

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> 

나는 안드로이드 개발 초보자 및 UI 개발에 관심이에 대한 코드입니다. 미리 감사드립니다. A.onCreate()에서

+2

이 당신이 – ernazm

답변

0

당신은 setContentView() 어떤 내용을 설정하기 전에 뷰를 찾기 위해 노력하고 있습니다. 그래서, list는 null로, 당신은 문제를 발견하는 방법을 알아 보려면 로그 캣에 줄이 밖으로

list.setAdapter(adapter); 

확인 NullPointerException (NPE)를 받고있어. LogCat은 귀중한 도구입니다.

+0

감사 응답을 힘 가까이 오류의 원인을 찾을 수 있습니다, 로그 캣에 대해 읽어하지만 내가 어떻게 탭 위젯의 접촉 (이미지 및 이름)의 목록을 표시 할 수 있습니까? – devyani

+0

@devyani :'findViewById()'가 나오기 전에'setContentView()'줄을 오른쪽으로 이동하십시오. 아직 콘텐츠를 설정하지 않은 경우 조회수를 찾을 수 없습니다. – bigstones

+0

고마워요 ... 작동 중입니다. :) 데이터베이스에서 데이터를 검색하는 것에 관한 한 가지 질문을해도 괜찮습니까? – devyani

관련 문제