사용자가 목록보기에서 확인하는 항목을 선택하고 싶습니다. CHOICE_MODE_MULTIPLE에 listview를 설정하고 여러 선택을 할 수있는 목록을 보여줍니다. 그러나 체크 된 항목을 얻는 방법? 내가 사용 해봤 : SparseBooleanArray sp = lv.getCheckedItemPositions(); 체크 된 항목을 저장하는 것이 좋지만 체크 된 항목이 체크되어 있지 않으면 배열을 업데이트하지 않습니다. 현재 체크되지 않은 항목이 체크 된 이전 데이터를 보여줍니다. 할 방법이 있습니까 ?? 다음은 내 코드입니다 :다중 선택 항목 선택 ListView - android
final ListView lv = new ListView(getApplicationContext());
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_multiple_choice,arrayList);
lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?>
myAdapter, View myView, int myItemInt, long mylng){
SparseBooleanArray sp= lv.getCheckedItemPositions();
String str="";
for(int i=0;i<sp.size();i++)
{
str+=arrayList.get(sp.keyAt(i))+",";
}
Toast.makeText(getApplicationContext(),
"You selected: "+str,
Toast.LENGTH_LONG).show();
}
});
나는 또한 선택한 항목을 기억하고 싶은 목록을 열 때 검사로 보여줍니다.
IMO if (sp.valueAt (i)) processCheckedItem (sp.keyAt (i)); – Deucalion
어떤 클래스가 processCheckedItem()에 속합니까? 나는 그것을 단지 것으로 부를 수는 없다. 객체를 통해 호출해야합니다. –
processCheckedItem은 예제 사용자 정의 함수입니다. 넌 뭐든지 할 수있어. 이 경우 "keyAt"는 체크 된 항목 위치를 반환하고, "valueAt"는 "keyAt"의 항목이 선택되었는지 여부를 반환합니다. – Deucalion