1

현재 내 안드로이드 앱에 대해 복수 선택 ListView을 구현 중입니다. 내 목표는 검색 버튼을 클릭하면 ListView과 연결된 ArrayAdapter에서 선택한 항목을 검색하는 것입니다.다중 선택 목록보기에서 선택된 항목 검색

현재이 작업을 수행하는 데 어려움을 겪고 있습니다. 예를 들어 MultiChoiceModeListener을 설정하려고 시도하는 등 온라인에서 물건을 발견했지만 Eclipse의 옵션으로 표시되지 않습니다. Google API (레벨 10), Android 2.3.3에 해당하는 것을 사용하고 있습니다. 여기에 지금까지 가지고있는 코드는 다음과 같습니다

public class FindPlace extends Activity {  

    public FindPlace() {} 

    @Override 
    protected void onCreate(Bundle savedInstanceState) {    
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.list_places); 
     Button search = (Button) findViewById(R.id.search); 
     String[] categories = getResources().getStringArray(R.array.Categories); 
     ArrayAdapter ad = new ArrayAdapter(this,android.R.layout.simple_list_item_multiple_choice,categories); 
     final ListView list=(ListView)findViewById(R.id.List); 
     list.setAdapter(ad); 
     list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
     list.setOnItemClickListener(new OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { } 

     });  
    }  
} 

답변

0

int에서 선택한 항목의 수를 취하고 아래처럼 루프를 만듭니다. 약간 더 효율적/제대로

int len = listView.getCount(); 
SparseBooleanArray checked = listView.getCheckedItemPositions(); 
for (int i = 0; i < len; i++){ 
if (checked.get(i)) { 
     String item = cont_list.get(i); 
     /* do whatever you want with the checked item */ 
    } 
} 
0

:

SparseBooleanArray checked = listView.getCheckedItemPositions(); 
for (int i = 0; i < checked.size(); ++i) 
{ 
    if (checked.valueAt(i)) 
    { 
     int pos = checked.keyAt(i); 
     doSomethingWith(adapter.getItem(pos)); 
    } 
} 
관련 문제