두 개의 탭이있는 프로젝트가 있습니다. 탭은 메인 클래스에서 생성됩니다. 여기에서는 탭 간의 변경 사항을 처리하기 위해 tablistener도 추가했습니다.onCreate()가있는 TabActivity 수신기
TabHost tabHost = getTabHost();
tabHost.setOnTabChangedListener(this);
TabHost.TabSpec spec;
Intent intent;
intent = new Intent().setClass(this, Tab1.class);
spec = tabHost.newTabSpec("tab1").setIndicator("",
res.getDrawable(R.drawable.ic_tab_tab1))
.setContent(intent);
tabHost.addTab(spec);
리스너 방법 :
public void onTabChanged(String tabName) {
if (tabName.equals("tab1")){
tab1.load();
}
}
그리고 너무 두 번째 탭 비슷한 여기에 하나 개의 탭의 순간이다. 내 질문은, onCreate() 메서드는 Tab1 및 Tab2 클래스에서 한 번만 실행되는 경우 탭을 변경 한 후 해당 클래스를 표시하도록 기본 클래스를 "강제 적용"할 수 있습니까?
public class Tab1 extends Activity{
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.tab1);
load();
}
public void load(){
//....
}
}
두 탭에서 목록을 사용하고 클릭 할 때마다 다시 채우려는 경우 onTabChanged() 메소드에서이 기능을 사용해야합니다. 또한 TabHost.TabContentFactory 인터페이스의 createTabContent (String s)를 구현하여 앱로드시 탭에 따라 다른보기 (내 경우에는 listviews)를 반환합니다. –
어디에서 널 포인터 예외가 발생합니까? 줄을 지정하십시오. – Hiral
이제 괜찮습니다. 두 번째 탭은 잘 추가되지 않았습니다. onResume() 메서드가 내 문제의 해결책이었습니다. 고마워요. :) – MMMM