검색결과 리스트
Android TabContent에 해당되는 글 1건
- 2012.03.05 [Android] Tab
글
여기서 탭은 CS에서 본 탭과 동일한 기능이다.
간단하게 라이너 레이아웃과 하나의 텍스트뷰를 넣고 각기 탭에 대한 기능을 구현 해 보면 다음과 같다.
일단 먼저 XML 파일은 생략한다. 처음에 프레임 레이아웃을 먼저 잡아주고 그 안에 라이너와 텍스트뷰를 넣어서 구성했다.
public class ImageViewActivity extends TabActivity{
TabHost m_tab;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
TabHost m_tab = getTabHost();
LayoutInflater inflater = LayoutInflater.from(this);
inflater.inflate(R.layout.main, m_tab.getTabContentView(),true);
m_tab.addTab(m_tab.newTabSpec("tag").setIndicator("first").setContent(R.id.first));
m_tab.addTab(m_tab.newTabSpec("tag").setIndicator("second").setContent(R.id.second));
m_tab.addTab(m_tab.newTabSpec("tag").setIndicator("third").setContent(R.id.m_txt_view));
}
}
간단히 표시 해 보면 위와 같이 할 수 있다. 다른 방법으로는 setContent 형식으로 표시 하는 방법이 있다.
그 코드는 다음과 같다.
public class ImageViewActivity extends TabActivity{
Factory m_factory;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
m_factory = new Factory(this);
TabHost tab = getTabHost();
Drawable icon = getResources().getDrawable(R.drawable.ic_launcher);
LayoutInflater inflater = LayoutInflater.from(this);
inflater.inflate(R.layout.main, tab.getTabContentView(),true);
tab.addTab(tab.newTabSpec("tag1").setIndicator("first",icon).setContent(m_factory));
tab.addTab(tab.newTabSpec("tag2").setIndicator("second",icon).setContent(m_factory));
tab.addTab(tab.newTabSpec("tag3").setIndicator("third",icon).setContent(m_factory));
}
}
class Factory implements TabHost.TabContentFactory{
Context m_context;
Factory(Context context){
m_context = context;
}
public View createTabContent(String tag){
TextView text = new TextView(m_context);
text.setText(tag);
return text;
}
}
별반 차이는 크게 없다. 하나 있다면 별도의 클래스를 생성하여 보낸 것인데 여기서 TabContentFactory를 확장하여 처리를 하였다.
이런 경우 각기 tag 값에 의해 다양하게 화면을 구성 할 수가 있다.
물론 Intent 또한 setContent에 적용하여 사용 할 수도 있다.
RECENT COMMENT