티스토리 뷰
안드로이드에서 제공되는 탭은 사용하기가 넘 불편하다...어쩔 수 없이 커스텁 탭을 만들어 사용해야 겠다.
How To
- 커스텀 뷰 레이아웃 XML 정의하기
- 커스텀 뷰 구현하기
- 액티비티 레이아웃 XML 정의하기
- custom tab Activity 만들기
- AndroidManifest.xml 에 Activity 등록
* | * | * |
■ 커스텀 뷰 레이아웃 XML 정의하기
하나의 리스트와 네개의 탭으로 이루어진 화면을 구성한다.
■ 커스텀 뷰 구현하기
- 탭을 클릭할 때 해당되는 데이터를 가져온다.View.OnClickListener 구현
package com.misun.samples.views;public class CustomTabs extends LinearLayout implements View.OnClickListener{ private static final String TAG ="CustomTabs"; Context context ; View view; ListView list ; TextView[] tabs ; ArrayAdapteradapter ; ArrayList arGeneral ; public CustomTabs(Context context) { super(context); init(context); } public CustomTabs(Context context, AttributeSet attrs) { super(context, attrs); init(context); } private void init(Context context){ Log.i(TAG, "init"); this.context = context ; tabs = new TextView[4]; LayoutInflater layoutInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view=layoutInflater.inflate(R.layout.w_customtabs,this); tabs[0] = (TextView)view.findViewById(R.id.tab_01); tabs[1] = (TextView)view.findViewById(R.id.tab_02); tabs[2] = (TextView)view.findViewById(R.id.tab_03); tabs[3] = (TextView)view.findViewById(R.id.tab_04); for(TextView tab : tabs){ tab.setOnClickListener(this); } arGeneral = new ArrayList (); adapter = new ArrayAdapter (context, android.R.layout.simple_list_item_1, arGeneral); list = (ListView)findViewById(R.id.tab_list); list.setAdapter(adapter); changeBackgound(0); setData(0); } public void onClick(View v) { switch(v.getId()){ case R.id.tab_01 : changeBackgound(0); break; case R.id.tab_02 : ...... } } private void changeBackgound(int idx){ ...... } /** * ListView 에 Data넣기 * @param idx */ private void setData(int idx){ arGeneral.clear(); switch(idx){ case 0 : arGeneral.add("이씨"); break; case 1: ........... } adapter.notifyDataSetChanged(); }}
■ 액티비티 레이아웃 XML 정의하기
■ custom tab Activity 만들기
■ AndroidManifest.xml 에 Activity 등록
댓글