안드로이드 ListView, ChoiceMode 사용 예
ListView의 아이템에 RadioButton이 출력되도록 설정한 예, 단일 선택 모드로 설정함
package com.example.androidapp; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; public class TestActivity extends Activity implements OnItemClickListener { String [] name = {"강호동", "이수근", "홍명보", "박근혜", "안철수", "박지성" }; ArrayAdapter<String> adapter; TextView tv; public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); adapter = new ArrayAdapter<String>( this, android.R.layout.simple_list_item_single_choice, name); ListView listView = (ListView) findViewById(R.id.listView1); listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); listView.setAdapter(adapter); listView.setOnItemClickListener(this); tv = (TextView) findViewById(R.id.textView1); } public void onItemClick(AdapterView<?> parent, View v, int position, long id) { String name = adapter.getItem(position); tv.setText("선택한 이름: "+name); } }
다중선택모드로 설정함, 다중선택 결과를 확인하는 부분 포함
package com.example.androidapp; import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.util.SparseBooleanArray; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.CheckedTextView; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; public class TestActivity extends Activity implements OnItemClickListener { String [] name = {"강호동", "이수근", "홍명보", "박근혜", "안철수", "박지성" }; ArrayAdapter<String> adapter; TextView tv; ListView listView; ArrayList<Boolean> checked = new ArrayList<Boolean>(); public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); for(int i=0;i<name.length;i++) { checked.add(false); } adapter = new ArrayAdapter<String>( this, android.R.layout.simple_list_item_multiple_choice, name); listView = (ListView) findViewById(R.id.listView1); listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); listView.setAdapter(adapter); listView.setOnItemClickListener(this); tv = (TextView) findViewById(R.id.textView1); } public void onItemClick(AdapterView<?> parent, View v, int position, long id) { CheckedTextView ctv = (CheckedTextView) v; ctv.toggle(); checked.set(position, ctv.isChecked()); } public void onBtnCheck(View v) { String str = ""; for (int i = 0; i < checked.size(); i++) { if(checked.get(i) ) {// str += adapter.getItem(i)+" "; } } tv.setText(str); } }