안드로이드 개발 질문/답변
(글 수 45,052)
다른 소스에서는 intent로 넘기는 TabActivity 소스를 긁어와서
프로그램을 실행시키자마자 바로 TavActivity가 뜨게하려고 각 탭에
tabHost.addTab(tabHost.newTabSpec("tab4").setIndicator("4").setContent(R.layout.main));
와 같은 형식으로 main쪽 레이아웃을 지정해줬구요
manifest에도 Tabactivity가 정의된 클래스를 프로그램 도입점으로 지정했는데 "Sorry" 문구가 뜨면서 프로그램이 멈추네요..
무엇이 문제일까요?
프로그램을 실행시키자마자 바로 TavActivity가 뜨게하려고 각 탭에
tabHost.addTab(tabHost.newTabSpec("tab4").setIndicator("4").setContent(R.layout.main));
와 같은 형식으로 main쪽 레이아웃을 지정해줬구요
manifest에도 Tabactivity가 정의된 클래스를 프로그램 도입점으로 지정했는데 "Sorry" 문구가 뜨면서 프로그램이 멈추네요..
무엇이 문제일까요?
2010.06.01 17:54:59
package com.kz.first;
import java.util.Date;
import android.app.TabActivity; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.widget.TabHost; import android.widget.TextView;
public class TabLayout extends TabActivity implements android.widget.TabHost.TabContentFactory {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TabHost tabHost = getTabHost();
LayoutInflater.from(this).inflate(R.layout.main, tabHost.getTabContentView(), true);
tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("1").setContent(R.layout.main));
tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("2").setContent(R.layout.main));
tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("3").setContent(R.layout.main));
tabHost.addTab(tabHost.newTabSpec("tab4").setIndicator("4").setContent(R.layout.main));
}
public View createTabContent(String tag) {
if (tag.compareTo("tab4") == 0) {
TextView tv = new TextView(this);
Date now = new Date();
tv.setText("I'm from a factory. Created: " + now.toString());
tv.setTextSize((float) 24);
return (tv);
} else {
return null;
}
}
}
코드는 위와 같은 식으로 넣었구요
Logcat에서는
06-01 08:51:55.845: ERROR/AndroidRuntime(1980): Uncaught handler: thread main exiting due to uncaught exception
06-01 08:51:55.864: ERROR/AndroidRuntime(1980): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.kz.first/com.kz.first.TabLayout}: java.lang.RuntimeException: Could not create tab content because could not find view with id 2130903041
이처럼 뜨네요.. 에뮬레이터에서는 manifest에 activity 지정안해주고 실행했을때 뜨는 'unexpectly stopped' 메세지가 뜹니다.
2010.06.03 16:19:52
혹시 layout.main 안에
<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">
<TabWidget android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</TabHost>
이 내용과 얼추 비슷한 내용이 있을듯 한데 Tabhost, Tabwidget의 id 값이 위에 적힌것과 다른지 확인 하셨으면 합니다.
TabActivit를 사용할때는 지정된 id 값만 사용할 수 있습니다.



