J'ai fait un effort décent pour trouver une question similaire et a échoué, alors s'il vous plaît pardonnez-moi s'il s'agit d'une pollution redondante.Programmer changer listview pour qu'il soit vérifiable
J'ai un ListView et un ImageButton défini dans le fichier xml "my_layout" correspondant à mon activité comme suit:
<ListView
android:id="@+id/listViewItems"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
></ListView>
et
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/btn_delete_dark"
android:id="@+id/buttonDelete"
android:layout_weight="1">
</ImageButton>
Je POPULATE alors le ListView programme dans le onCreate() méthode de mon activité comme suit:
public class ViewItemsActivity extends Implémentation implémente l'outil OnClickListener, OnItemClickListener {
ImageButton buttonDelete;
ListView listViewItems;
DatabaseHandler dbHandler;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_layout);
buttonDeleteQuestion = (ImageButton) findViewById(R.id.buttonDelete);
listViewQuestions = (ListView) findViewById(R.id.listViewItems);
buttonDelete.setOnClickListener(this);
//get data from sql table containing items
dbHandler = new DatabaseHandler(this);
String [] items = dbHandler.getItems(); //get data to populate ListView
CustomAdapter adapter = new CustomAdapter(this,
android.R.layout.simple_list_item_1, items);
listViewItems.setAdapter(adapter);
listViewItems.setOnItemClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.buttonDelete:
listViewItems.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
listViewItems.setItemChecked(0, true);
break;
//other cases are irrelevant
}
}
@Override
public void onItemClick(AdapterView<?> parent, View v, int pos, long id) {
// TODO Auto-generated method stub
//non relevant code
}
}
Tout fonctionne comme il se doit, sauf que je veux ListView changer, en apparence et la fonctionnalité, à la suite de cliquer buttonDelete, afin qu'il affiche coches à droite de chaque rangée qui peut être vérifiée en cliquant sur eux. J'ai cru comprendre que setChoiceMode (ListView.MULTIPLE_CHOICE) et setItemChecked (i, true) auraient cet effet, mais il est clair que j'ai manqué quelque chose comme ce n'est pas le cas.
Je suis assez nouveau pour Android et il est donc possible que j'ai perdu le temps de quelqu'un avec des trivialités, pour lesquels je m'excuse.
Merci beaucoup.