반응형
안드로이드 App 개발을 하게되면, ListView를 많이 사용하게 됩니다.
ListView에서 몇번째 위치의 아이템을 선택했는지가 가장 중요하지만,
현재 보이는 ListView 아이템 중에 몇번째인지도 필요한 경우도 있습니다.
그래서 두 위치를 얻는 방법을 기록해둡니다.
public onCreate() {
ListView listView = findViewById(R.id.listView);
listView.setOnKeyListener(mOnKeyListener);
....
}
View.OnKeyListener mOnKeyListener = new View.OnKeyListener() {
public boolean onKey (View view, int keyCode, KeyEvent event) {
int itemCount = mListView.getCount();
int selectedPosition = mListView.getSelectedItemPosition();
int positionInVisible = selectedPosition - mListView.getFirstVisiblePosition();
....
}
}
ListView listView = findViewById(R.id.listView);
listView.setOnKeyListener(mOnKeyListener);
....
}
View.OnKeyListener mOnKeyListener = new View.OnKeyListener() {
public boolean onKey (View view, int keyCode, KeyEvent event) {
int itemCount = mListView.getCount();
int selectedPosition = mListView.getSelectedItemPosition();
int positionInVisible = selectedPosition - mListView.getFirstVisiblePosition();
....
}
}
코드에서는 OnKeyListener를 등록하였지만, OnTouchListener를 등록해도 상관없습니다.
selectedPosition은 ListView 전체에서의 position을 나타내고,
positionInVisible은 ListView에서 보여지는 Item 중 position을 나타냅니다.
반응형
'안드로이드' 카테고리의 다른 글
RSS(Really Simple Syndication) 표준 (0) | 2011.07.07 |
---|---|
안드로이드 XML 파싱방법 - SAX, XmlPullParser, DOM (0) | 2011.07.06 |
[안드로이드] 코드상에서 안드로이드 빌드 버전 확인하기 (0) | 2011.07.05 |
날씨 정보 제공자 (0) | 2011.06.30 |
[안드로이드] 자바 API 한글 문서 (2) | 2011.06.22 |
[안드로이드] SQLite db 구조 보기 ( SQLite Manager 사용하기 ) (0) | 2011.06.08 |
[안드로이드] 유니코드 문자(특수문자)를 코드에서 사용하는 방법 (0) | 2011.06.08 |
JDK Old Version(1,2, 1,3, 1,4, 1,5) download. (JDK 이전버전 다운로드) (0) | 2011.06.05 |
[안드로이드] repo init을 할 경우 connection timed out / read error 애러 (1) | 2011.06.03 |
[안드로이드] repo sync를 할 경우 read error 발생 (0) | 2011.06.03 |