Je suis en train de créer une application pour Android. dans lequel, à un moment donné, j'ai besoin d'ouvrir une activité, j'ai besoin d'afficher tous les contacts sur le téléphone de l'utilisateur dans un listview
avec checkbox
, de sorte que plusieurs contacts peuvent être sélectionnés. J'ai écrit un code qui affiche actuellement la liste de tous les contacts mais sans checkbox comme vous pouvez le voir dans l'image ci-jointe. Ensuite, lorsque l'utilisateur sélectionne les contacts nécessaires à l'aide checkbox
et clicks on DONE button
le résultat devrait être dérivé de l'activité principale et tous les contacts que l'utilisateur sélectionné doit être affiché dans le EditText
comme celui-ci Frank <+911234567890>, John <+913456789012>, Ashley <+911237890456>,
. Comment puis-je réaliser ce que je veux? Et aussi les tirets (-) qui sont actuellement affichés devraient également disparaître.en sélectionnant plusieurs contacts en utilisant la case à cocher
Répondre
Utilisez ce qui suit pour ajouter des cases à cocher sur tous les points:
listView.setChoiceMode(CHOICE_MODE_MULTIPLE);
ce que ce non seulement ajouter des cases à cocher à tous les articles, mais il se chargera de tous les états cocher pour vous. Vous disposez de plusieurs méthodes que vous pouvez utiliser pour obtenir l'état des éléments:
getCheckedItemCount()
getCheckedItemIds()
getCheckedItemPositions()
Et vous pouvez utiliser setItemChecked() pour définir l'état vérifié par programmation de tout élément. Jetez un oeil à this tutorial pour un guide comment faire une liste de sélection multiple.
Comment puis-je supprimer les tirets (-) lorsque je récupère un nombre dans une chaîne? –
diviser la chaîne sur chaque '-' en utilisant la fonction split ("-") et concaténer il.
Utilisez l'extrait de code ci-dessous pour récupérer tous les contacts du répertoire, ajoutez-les dans une liste ListView contenant des cases à cocher pour activer la sélection multiple ,, elle est claire et directe au point.
public class Display extends Activity implements OnItemClickListener{
List<String> name1 = new ArrayList<String>();
List<String> phno1 = new ArrayList<String>();
MyAdapter ma ;
Button select;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.display);
getAllContacts(this.getContentResolver());
ListView lv= (ListView) findViewById(R.id.lv);
ma = new MyAdapter();
lv.setAdapter(ma);
lv.setOnItemClickListener(this);
lv.setItemsCanFocus(false);
lv.setTextFilterEnabled(true);
// adding
select = (Button) findViewById(R.id.button1);
select.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
StringBuilder checkedcontacts= new StringBuilder();
for(int i = 0; i < name1.size(); i++)
{
if(ma.mCheckStates.get(i)==true)
{
checkedcontacts.append(name1.get(i).toString());
checkedcontacts.append("\n");
}
else
{
}
}
Toast.makeText(Display.this, checkedcontacts,1000).show();
}
});
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
ma.toggle(arg2);
}
public void getAllContacts(ContentResolver cr) {
Cursor phones = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null);
while (phones.moveToNext())
{
String name=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
name1.add(name);
phno1.add(phoneNumber);
}
phones.close();
}
class MyAdapter extends BaseAdapter implements CompoundButton.OnCheckedChangeListener
{ private SparseBooleanArray mCheckStates;
LayoutInflater mInflater;
TextView tv1,tv;
CheckBox cb;
MyAdapter()
{
mCheckStates = new SparseBooleanArray(name1.size());
mInflater = (LayoutInflater)Display.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return name1.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View vi=convertView;
if(convertView==null)
vi = mInflater.inflate(R.layout.row, null);
tv= (TextView) vi.findViewById(R.id.textView1);
tv1= (TextView) vi.findViewById(R.id.textView2);
cb = (CheckBox) vi.findViewById(R.id.checkBox1);
tv.setText("Name :"+ name1.get(position));
tv1.setText("Phone No :"+ phno1.get(position));
cb.setTag(position);
cb.setChecked(mCheckStates.get(position, false));
cb.setOnCheckedChangeListener(this);
return vi;
}
public boolean isChecked(int position) {
return mCheckStates.get(position, false);
}
public void setChecked(int position, boolean isChecked) {
mCheckStates.put(position, isChecked);
}
public void toggle(int position) {
setChecked(position, !isChecked(position));
}
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// TODO Auto-generated method stub
mCheckStates.put((Integer) buttonView.getTag(), isChecked);
}
}
}
- 1. asp.net en sélectionnant une case à cocher de la grille
- 2. en utilisant la case à cocher pour envoyer plusieurs valeurs
- 3. Comment créer une ligne de table en sélectionnant une case à cocher gridview en utilisant javascript
- 4. en sélectionnant plusieurs cases à cocher dans cakephp?
- 5. case à cocher propriété en utilisant jquery
- 6. modifier case à cocher en utilisant javascript
- 7. jQuery sélectionnant une case à cocher dans la forme numéro
- 8. en utilisant jquery cocher la case correspondante
- 9. Afficher/Cacher le bouton en sélectionnant/désélectionnant la case
- 10. Multi Supprimer en utilisant la case à cocher
- 11. en utilisant la case à cocher dans la grille telerik
- 12. case à cocher décocher en utilisant plusieurs classes en utilisant jquery?
- 13. en utilisant la case à cocher comme bouton radio
- 14. Supprimer en utilisant la case à cocher dans codeigniter
- 15. filtre gridview en utilisant la case à cocher
- 16. Création de la case à cocher dynamiquement en utilisant JavaScript?
- 17. validation de la case à cocher en utilisant jquery
- 18. Désactiver le bouton en utilisant la case à cocher JavaScript
- 19. construire une chaîne en utilisant la case à cocher
- 20. Comment gérer la case à cocher en utilisant TestComplete?
- 21. Recherche PHP en utilisant AJAX avec la case à cocher
- 22. Afficher/Masquer avec la case à cocher en utilisant jQuery
- 23. Écoutez l'état de la case à cocher en utilisant jquery
- 24. En utilisant jQuery, en sélectionnant la case <select> suivante et en changeant sa valeur
- 25. Comment rassembler plusieurs valeurs de case à cocher dans un formulaire en utilisant php
- 26. comment cocher/décocher toutes les cases en utilisant une seule case à cocher en utilisant vb.net?
- 27. plusieurs cases à cocher en utilisant jquery
- 28. Comment accéder à cette case à cocher en utilisant jquery?
- 29. Case à cocher Filtre à condition multiple en utilisant Jquery
- 30. Comment obtenir les contacts sélectionnés de case à cocher (Android)
double possible de [obtenir des détails de contact sélectionné de la vue de la liste] (http://stackoverflow.com/questions/12338160/get-details-of-contact-selected-from-list -view) – Luksprog
@Luksprog ce n'est pas un doublon de toute façon. Si vous ne pouvez pas aider alors vous devriez mieux rester à l'écart. –