CheckedTextView ведет себя хаотично - PullRequest
0 голосов
/ 18 мая 2010

У кого-нибудь еще была проблема с CheckedTextView, показывающим несколько отмеченных элементов, когда отмечен только 1? При щелчке элемента CheckedTexView ответ от OnClickListener заключается в проверке записей до и после выбранного элемента.

Вот код:

    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();

          }
        });

private void populateContactList () { // Сборка адаптера с контактами Курсорный курсор = getContacts (); String [] fields = new String [] { ContactsContract.Data.DISPLAY_NAME }; SimpleCursorAdapter адаптер = новый SimpleCursorAdapter (это, R.layout.friend_entry, курсор, поля, новый int [] {R.id.friendEntryText}); mListView.setAdapter (адаптер); }

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);
}

XML выглядит следующим образом:

1 Ответ

0 голосов
/ 02 июня 2010

Обнаружена проблема ... textView необходимо объявить как поле, в противном случае результаты managedQuery циклически переключаются через onClickListener.

...