자세히 설명해보면,
TabActivity 에서 4개의 탭을 구성하고, 각각을 intent 로 호출합니다.
첫번째 탭에 커스텀 ListView 를 보여 줄 생각인데,
getVew 메소드 내에서 ArrayList 의 내용을 빼내어 TextView에 세팅해주면 런타임 오류가 납니다.
아래는 관련 코드 입니다.
TabActivity 에서 intent로 불러오는 첫번째 탭 파일을 올립니다.
public class Tab1_Online_List extends ListActivity {
ArrayList<Online_List_Entity> list = new ArrayList<Online_List_Entity>();
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.online_list);
setListAdapter(new MyAdapter(this));
}
class MyAdapter extends ArrayAdapter<Online_List_Entity> {
Activity context;
Online_List_Entity entity = new Online_List_Entity();
public MyAdapter(Activity context) {
super(context, R.layout.list_row, list);
this.context = context;
}
public int getCount() {
return list.size();
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View v = inflater.inflate(R.layout.list_row, null);
entity = list.get(position);
ImageView iv = (ImageView)findViewById(R.id.icon);
TextView tv = (TextView)findViewById(R.id.tab1_textview);
Log.i("여기는?","여기까진 잘됨");
tv.setText(entity.getName()); // 여기가 오류부분 입니다.
return v;
}
}
}
거의 마지막 부분이 오류인 것 같은데요,
오류부분을 빼고 프로그램을 실행하면 잘 됩니다.
리스트뷰도 일단은 xml에 세팅해준 아이콘과 text 내용으로 나오구요.
혹시나 싶어 entity.getName() 을 콘솔에 찍어봐도 제가 list에 세팅한 대로 잘 나옵니다.
그런데 꼭 getVew 메소드 내에서 setText만 하면 런타임 오류가 나는데요, 솔직히 아무리 매달려봐도 잘 모르겠습니다.
혹시나 싶어서 TabActivity 를 상속받은 부분을 상속받지 않고 그냥 Activity를 상속받게도 고쳐보고, 이런저런걸
건드려 봐도 제대로 된 원인을 모르니 역시 해결이 안됩니다. 펍에 있는 listview 관련글도 다 읽어본 것 같은데 아직도
무엇이 문제인지는 잘 모르겠네요.. 전문가님들의 조언을 부탁드립니다 ㅠㅠ
아래는 에러 로그 입니다.
01-28 17:45:15.246: W/dalvikvm(1722): threadid=1: thread exiting with uncaught exception (group=0x2aac9808)
01-28 17:45:15.251: E/AndroidRuntime(1722): FATAL EXCEPTION: main
01-28 17:45:15.251: E/AndroidRuntime(1722): java.lang.NullPointerException
01-28 17:45:15.251: E/AndroidRuntime(1722): at kkk.secret.messenger.Tab1_Online_List$MyAdapter.getView(Tab1_Online_List.java:90)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.widget.AbsListView.obtainView(AbsListView.java:1316)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.widget.ListView.measureHeightOfChildren(ListView.java:1198)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.widget.ListView.onMeasure(ListView.java:1109)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.view.View.measure(View.java:8207)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1012)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:696)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.widget.LinearLayout.onMeasure(LinearLayout.java:306)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.view.View.measure(View.java:8207)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.view.View.measure(View.java:8207)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.view.View.measure(View.java:8207)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.view.View.measure(View.java:8207)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1012)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.widget.LinearLayout.measureVertical(LinearLayout.java:381)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.widget.LinearLayout.onMeasure(LinearLayout.java:304)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.view.View.measure(View.java:8207)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.view.View.measure(View.java:8207)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.view.View.measure(View.java:8207)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.widget.LinearLayout.measureVertical(LinearLayout.java:526)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.widget.LinearLayout.onMeasure(LinearLayout.java:304)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.view.View.measure(View.java:8207)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.view.View.measure(View.java:8207)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.view.ViewRoot.performTraversals(ViewRoot.java:807)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.view.ViewRoot.handleMessage(ViewRoot.java:1733)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.os.Handler.dispatchMessage(Handler.java:99)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.os.Looper.loop(Looper.java:123)
01-28 17:45:15.251: E/AndroidRuntime(1722): at android.app.ActivityThread.main(ActivityThread.java:4627)
01-28 17:45:15.251: E/AndroidRuntime(1722): at java.lang.reflect.Method.invokeNative(Native Method)
01-28 17:45:15.251: E/AndroidRuntime(1722): at java.lang.reflect.Method.invoke(Method.java:521)
01-28 17:45:15.251: E/AndroidRuntime(1722): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:869)
01-28 17:45:15.251: E/AndroidRuntime(1722): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:627)
01-28 17:45:15.251: E/AndroidRuntime(1722): at dalvik.system.NativeStart.main(Native Method)




TextView tv = (TextView)findViewById(R.id. tab1_ textview);
이 부분에서 tv값이 널이 아닌지 검사해 보세요.