안드로이드 개발 질문/답변
(글 수 45,052)
listview로 여러개의 체크박스를 만들어서 체크한 값을 가지고 오려고하는데요
안되서 getCheckedItemPositions의 size를 찍어보니 자꾸 0으로 나오네요
// 어댑터에 데이터 포함
ArrayAdapter<String> adapter;
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
*/
// 리스트뷰에 어댑터 연결
final ListView listView = (ListView)findViewById(R.id.list);
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
listView.setAdapter(new AdapterList(this));
//listView.setDivider(null);
Button ok = (Button)findViewById(R.id.button_test);
ok.setOnClickListener(new View.OnClickListener() {@Override
public void onClick(View v) {// TODO Auto-generated method stub
//값을 안얻어와요 ㅜㅠㅠ
Log.v("Check Position", "Size : "+listView.getCheckedItemPositions().size());TextView result = (TextView)findViewById(R.id.result);
result.setText(text[0]);
}
});
}
class AdapterList extends ArrayAdapter<String>
{Activity context;
AdapterList(Activity context)
{super(context, R.layout.filelist, text);
this.context = context;
// TODO Auto-generated constructor stub
}
public View getView(final int position, View convertView, ViewGroup parent)
{LayoutInflater inflater = context.getLayoutInflater();
View row = inflater.inflate(R.layout.filelist, null);
TextView testtext = (TextView)row.findViewById(R.id.showtext);
testtext.setText(text[position]);
final CheckBox chk = (CheckBox)row.findViewById(R.id.check);
//어떻게 해야될까요 ~_~
chk.setChecked((((ListView) parent).isItemChecked(position)));
return row;
}
}
private String[] text = { "hello", "test", "abcde", "12345" };안되서 getCheckedItemPositions의 size를 찍어보니 자꾸 0으로 나오네요
밑에 리스너에서 뭔가 해줘야될것같은데 구체적으로 어떻게 해야될지 좀 설명해주세요 ㅜㅜ




OnCheckedChangeListener를 거시고 리스트뷰에 setItemChecked로 체크 상황을 알려주면 될 것 같습니다.