뭐 고작 ListView에 index 넣는 걸로 엄청 오래 끌었는데... 무튼 이제 거의 다왔음요.
전편 필요한 분.
2012/03/07 - [Android Study] - Android Study ListView Indexer 5편
Layout 파일 내용.
붉은 색 부분이 index 표현을 위해서 추가된 code임. Layout 설명은 생략 하도록 하겠음.
IconAdapter에 추가된 함수
전편 필요한 분.
2012/03/07 - [Android Study] - Android Study ListView Indexer 5편
Layout 파일 내용.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="vertical">
<LinearLayout
android:id="@+id/header"
android:layout_width="match_parent"
android:layout_height="25dip"
android:clickable="false"
android:background="@*android:drawable/dark_header"
android:gravity="center_vertical"
android:focusable="false"
android:visibility="gone">
<TextView
android:id="@+id/head"
android:layout_width="56dip"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textColor="@*android:color/dim_foreground_dark"
android:textSize="14sp"
android:gravity="center"/>
</LinearLayout>
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:gravity="left|center_vertical"
android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceMedium"/>
</LinearLayout>
IconAdapter에 추가된 함수
private void bindSectionHeader(View itemView, int position) {
final int section = getSectionForPosition(position);
LinearLayout header = (LinearLayout) itemView.findViewById(R.id.header);
TextView head = (TextView) itemView.findViewById(R.id.head);
if (getPositionForSection(section) == position) {
String title = (String)mIndexer.getSections()[section];
head.setText(title);
header.setVisibility(View.VISIBLE);
} else {
header.setVisibility(View.GONE);
}
}
Index 표시하는 부분 임 그럼 이 함수를 어디서 호출 해주는 것이냐 하면.
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
mCursor.moveToPosition(position);
if (convertView == null) {
convertView = newView(mContext, mCursor, parent);
}
bindView(convertView, mContext, mCursor);
bindSectionHeader(convertView, position);
return convertView;
}
이렇게 CursorAdapter 에 기본 함수 getView에서 호출 하도록 만들면 땡!
그러면 Adapter는 어떻게 초기화 하냐 하면.
그러면 Adapter는 어떻게 초기화 하냐 하면.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_content);
mAdapter = new IconAdapter(this, null);
mList = (ListView) findViewById(android.R.id.list);
mList.setAdapter(mAdapter);
mList.setOnItemClickListener(this);
Cursor cursor = getContentResolver().query(PracticeColumns.CONTENT_URI,
new String[] {PracticeColumns.ID, PracticeColumns.DATA}, null,
null, PracticeColumns.DATA + " ASC");
mAdapter.changeCursor(cursor);
}
Adapter 에서 changeCursor를 호출하면 땡!
보통 Code를 통째로 공개하지는 않지만... 흠흠 이번엔 특별히 내가 귀찮으므로... 첨부~
보통 Code를 통째로 공개하지는 않지만... 흠흠 이번엔 특별히 내가 귀찮으므로... 첨부~
'Android' 카테고리의 다른 글
Android Custom Widget 만들기 2편 (0) | 2012.04.12 |
---|---|
Android Custom Widget 만들기 1편 (1) | 2012.04.12 |
Android Study ListView Indexer 5편 (0) | 2012.03.07 |
Android Study ListView Indexer 4편 (0) | 2012.03.07 |
Android Study ListView Indexer 3편 (0) | 2012.03.07 |