Android 사용자 정의 listview,삭제 추가.
7020 단어 기록 하 다.
public class Base extends BaseAdapter {
private List
Base 에 게 초기 에 Layoutinflater 와 매개 변 수 를 전달 하 는 list 를 정의 합 니 다(Hashmap 과 Map 의 작은 차이 가 있 는 것 같 습 니 다?).view hoder 를 다시 쓰 고 필요 한 컨트롤 을 정의 합 니 다(여 기 는 2 개의 Textview 를 사 용 했 습 니 다).하나의 checkbox(삭제 에 사 용 됩 니 다).getview 방법 에서 view hode 를 예화 하고 빈 view 를 판단 하 며 빈 경우 inflater 로 작성 한 xml 파일 을 채 우 고 findviewby id 를 예화 합 니 다.view 에 tag 설정 하기;else 재 활용 직접 가 져 오기;tag 를 확보 한 후 list 에서 데 이 터 를 가 져 와 해당 하 는 곳 으로 불 러 옵 니 다.view 되 돌리 기;부분 추가:
base = new Base(getActivity(), list);
add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("tj", sp1.getSelectedItem().toString());
map.put("todo", sp2.getSelectedItem().toString());
list.add(map);
base.notifyDataSetChanged();
}
});
list 를 업데이트 하고 notify 를 동기 화 합 니 다.
삭제
del.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int max = listView.getChildCount();
for (int i = max - 1; i >= 0; i--) {
View view = listView.getChildAt(i);
CheckBox checkBox = (CheckBox) view
.findViewById(R.id.item_3);
if (checkBox.isChecked()) {
list.remove(i);
checkBox.setChecked(false);
}
}
base.notifyDataSetChanged();
}
});
listview 의 총 수 를 가 져 옵 니 다.거꾸로,최대-1 부터 0,i 까지;for 순환 내 에서 listview 하위 열 에 대응 하 는 view 를 예화 합 니 다.view 를 통 해 해당 하 는 checkbox 를 연결 하여 선택 여 부 를 판단 하고 선택 하면 해당 list 를 삭제 하 며 checkbox 를 선택 하지 않 은 상태 로 설정 하여 notify 새로 고침 을 호출 합 니 다.
bug:많이 추가 되 었 습 니 다.listview 를 미 끄 러 뜨 릴 때 체크 상자 의 체크 는 마구 뛰 어 다 닙 니 다(해결 가능,찾 을 수 없습니다).한 번 은 삭 제 된 줄 이 선택 한 줄 이 아 닌 것 을 만 났 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 파일 crc 검사텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.