2010-05-18 3 views
0

Quelqu'un d'autre a-t-il eu un problème avec CheckedTextView montrant plusieurs éléments cochés lorsque seulement 1 est coché? Quand un élément CheckedTexView est cliqué, la réponse de OnClickListener est de vérifier les entrées avant et après l'élément cliqué.CheckedTextView Se comporter de manière erratique

Voici le code:

mFriendDoneButton = (Button) findViewById(R.id.doneAddAFriendButton); 
    mListView = (ListView)findViewById(R.id.contactList); 

    populateContactList(); 

    mListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
    mListView.setItemsCanFocus(false); 

    mListView.setOnItemClickListener(
      new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> adapterView, View view, 
       int arg2, long arg3) { 
      int selectedPosition = arg2; 

      CheckedTextView textView = (CheckedTextView)view.findViewById(R.id.friendEntryText); 
      String mtext = textView.getText().toString(); 


      Log.i("AddAFriendActivity", "Click on position "+selectedPosition); 

      Toast t = new Toast(AddAFriendActivity.this); 
      t = Toast.makeText(AddAFriendActivity.this, "Clicked on " + arg2+mtext+arg3, Toast.LENGTH_LONG); 
      t.show(); 

      } 
     }); 

populateContactList private void() {// Construire un adaptateur avec des entrées de contact curseur curseur = getContacts(); Chaîne [] fields = new Chaîne [] { ContactsContract.Data.DISPLAY_NAME }; Adaptateur SimpleCursorAdapter = new SimpleCursorAdapter (this, R.layout.friend_entry, curseur, champs, nouvel int [] {R.id.friendEntryText}); MListView.setAdapter (adaptateur) ; }

private Cursor getContacts() 
{ 
    // Run query 
    Uri uri = ContactsContract.Contacts.CONTENT_URI; 

    String[] projection = new String[] { 
      ContactsContract.Contacts._ID, 
      ContactsContract.Contacts.DISPLAY_NAME 
    }; 
    String selection = null; 
    String[] selectionArgs = null; 
    String sortOrder = null; 

    return managedQuery(uri, projection, selection, selectionArgs, sortOrder); 
} 

Le XML est comme suit:

Répondre

0

trouvé le problème ... textView doit être déclarée comme un champ, sinon le cycle des résultats de ManagedQuery à travers le onClickListener.

Questions connexes