ListView item에 대한 이벤트 수신 추가
1. 이벤트 클릭(OnItemClickListener)
onItemClick(AdapterView> parent, View view, int position, long id)
parent: 공식 설명: The AdapterView where the click happened, 즉 사용자가 클릭한 AdapterView로 이 매개 변수는 일반적으로 사용하지 않습니다.
view: 현재 클릭한 목록 항목에 대응하는 레이아웃 View 대상은 이 파라미터를 통해 해당하는 목록 항목 내부의 구성 요소를 얻어 조작할 수 있습니다.예를 들어ListView가 네 개의 목록 항목을 포함하고 두 번째 항목을 눌렀다고 가정하면view를 통해 두 번째 목록 항목에 있는 TextView,ImageView 등의 구성 요소를 조작할 수 있다.
position: 현재 클릭한 목록 항목의 위치는 0부터, 즉 n번째를 클릭하면 n-1입니다.
id: 현재 클릭한 목록 항목의 번호도 0에서 시작합니다. 일반적으로position과 id는 같습니다.
public class MainActivity extends Activity implements AdapterView.OnItemClickListener{
private ListView myListView;
private SimpleAdapter simpleAdapter;
private List
2. 이벤트 스크롤
void onScrollStateChanged(AbsListView view, int scrollState)
스크롤 상태의 변화를 감청합니다.
view: 스크롤되는 뷰, 즉 현재 ListView입니다.
scrollState: 스크롤 상태는 다음과 같습니다.
SCROLL_STATE_TOUCH_SCROLL
:슬라이딩 상태, 손가락이 보기에서 미끄러지고 손가락이 화면에 머물러 떠나지 않습니다.SCROLL_STATE_FLING
:던지기 상태에서 손가락이 뷰를 벗어나기 전에 힘껏 긋고(뷰를 던지는 느낌을 상상)하면 뷰가 관성에 따라 미끄러져 멈추게 된다.SCROLL_STATE_IDLE
:방치 상태, 아무것도 하지 않은 상태.던지기 상태나 터치 스크롤 상태가 끝나면 유휴 상태로 들어갑니다.void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount)
ListView가 스크롤되지 않는 경우 는 스크롤 상태가 아닌 것을 감지하여 계속 호출됩니다.
view: 스크롤되는 뷰, 즉 현재 ListView입니다.
firstVisibleItem: 불러온 첫 번째 목록 항목의 인덱스 값입니다.
visibleItemCount: 불러온 목록 항목의 총 수입니다.
totalItemCount: 어댑터에서 데이터 소스에 대응하는 목록 항목의 총 수입니다.
public class MainActivity extends Activity implements AbsListView.OnScrollListener{
private ListView myListView;
private SimpleAdapter simpleAdapter;
private List> data;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
data = new ArrayList>();
simpleAdapter = new SimpleAdapter(this, getData(), R.layout.item, new String[]{"img", "text"}, new int[]{R.id.img, R.id.text});
myListView = (ListView) findViewById(R.id.myListView);
myListView.setAdapter(simpleAdapter);
//
myListView.setOnScrollListener(this);
}
private List> getData() {
for (int i = 0; i < 20; i++) {
Mapmap = new HashMap();
map.put("img", R.mipmap.ic_launcher);
map.put("text", " simpleAdapter"+(i+1));
data.add(map);
}
return data;
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
switch (scrollState) {
//
case SCROLL_STATE_FLING:
Toast.makeText(this, "SCROLL_STATE_FLING", Toast.LENGTH_SHORT).show();
break;
//
case SCROLL_STATE_IDLE:
Toast.makeText(this, "SCROLL_STATE_IDLE", Toast.LENGTH_SHORT).show();
break;
//
case SCROLL_STATE_TOUCH_SCROLL:
Toast.makeText(this, "SCROLL_STATE_TOUCH_SCROLL", Toast.LENGTH_SHORT).show();
break;
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
// Toast.makeText(this, " , :" + firstVisibleItem +
// ", :" + visibleItemCount + ", :" +
// totalItemCount, Toast.LENGTH_LONG).show();
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.