#android
#Android
Вопрос:
Я создаю checkboxes
динамически и хочу привязать это checkboxes
к listview
.
Как я могу это сделать?
Здесь я привожу свой код—
public class HomeActivity extends ListActivity{
CheckBox[] chk;
ListView lv1;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
lv1=(ListView)findViewById(R.id.listTasks);
tv1=(TextView) findViewById(R.id.tvMsg);
Раздел базы данных:
db = new DBAdapter(HomeActivity.this);
db.open();//int[] id=new int[]{Integer.parseInt(DBAdapter.ID)};
Cursor cr=db.getUncompletedTask();//my database function to retrieve values to create checkboxes
if (cr.moveToFirst()) {
do {
String[] str=new String[2];
str[0]=cr.getString(0);
str[1]=cr.getString(1);
al.add(str);
} while (cr.moveToNext());
}
startManagingCursor(cr);
String[] tasks = new String[] { DBAdapter.KEY_TODO };
Создание флажка:
int[] idchk=new int[al.size()];//here i am creating checkbox dynamicaly
if (al.size() != 0) {
chk = new CheckBox[al.size()];
System.out.println(al.size());
for (int i = 0; i < al.size(); i ) {
String[] s = (String[]) al.get(i);
System.out.println("ID: " s[0]);
Task_Id = Integer.parseInt(s[0]);
Task_Nm = s[1];
chk[i] = new CheckBox(HomeActivity.this);
System.out.println(i "task id" Task_Id "parseint" Integer.parseInt(s[0] chk[i].getText().toString()));
chk[i].setId(Task_Id);
idchk[i]=Task_Id;
chk[i].setText(Task_Nm);
//lv1.addView(chk[i]);
//setContentView(lv1);
}}}
Вот что я могу написать здесь, чтобы это динамически созданное checkboxes
было привязано к listview
Ответ №1:
Что, если вы используете listview Android по умолчанию с флажком. Используя :
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked, COUNTRIES));
где COUNTRIES — это статический конечный массив строк, содержащий элемент для отображения..
Комментарии:
1. Это работает, но я хочу привязывать флажки динамически. это означает, что я создаю флажки динамически во время выполнения. итак, как я могу привязать эти флажки к listview.пожалуйста, дайте мне ответ.
Ответ №2:
Вы можете использовать настраиваемый ListView, строки которого содержат CheckBox. Создайте свой собственный адаптер, расширяющий ArrayAdapter, и переопределенный им метод getView создаст ваши флажки.