Ich kann nicht auf die ListView in Android klicken?

Ich habe eine App mithilfe der Kontaktsynchronisierung erstellt. Ich liste die folgenden Kontaktinformationen mit Foto, Name und Nummer. Ich liste alle diese Dinge erfolgreich in einem Brauch aufListenansicht, aber ich kann nicht auf die Schaltfläche klickenListenansicht. Es sieht aus wie gesperrt. Kann nicht darauf klicken.

Aber ich habe die gleiche Prozedur für eine andere Aktivität durchgeführt. Benutzerdefiniert verwendenListenansicht aber ich kann auf diese Ansicht klicken und es funktioniert gut.

Worin besteht das Problem? Hier ist meine Beispielcodierung:

    ListView settingsList = (ListView) findViewById(R.id.manage_track_listView);
    ArrayList<ContactList> MySettingsList = new ArrayList<ContactList>();

    ContactList setting1 = new ContactList("contact name 1", "Number 1", null);
    ContactList setting2 = new ContactList("contact name 2", "Number 2", null);
    ContactList setting3 = new ContactList("contact name 3", "Number 3", null);

    MySettingsList.add(setting1);
    MySettingsList.add(setting2);
    MySettingsList.add(setting3);

    ContactList list[] = new ContactList[MySettingsList.size()];

    for(int i=0;i<MySettingsList.size();i++) {

        ContactList mySettings = MySettingsList.get(i);
        list[i] = new ContactList(mySettings.getName(), mySettings.getNumber(), mySettings.getImageIcon());
    }

    ContactListAdapter adapter = new ContactListAdapter(this, R.layout.manage_track_list_custom_view, list);
    settingsList.setAdapter(adapter);
    System.out.println("before listener");
    settingsList.setOnItemClickListener(new OnItemClickListener() {

        @Override


        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {
            // TODO Auto-generated method stub

            System.out.println("Clicked " + position);
        }
    });
    System.out.println("after listener");

Hier ist ContactList eine Klasse, die den Kontaktnamen, die Nummer und das Byte [] für imageBlob enthält. Wenn das Bild null ist, habe ich den Standard ic_launcher als Kontaktbild festgelegt. Die Adapterklasse ist:

public class ContactListAdapter extends ArrayAdapter<ContactList> {

    Context context;
    int layoutResourceId;
    ContactList objects[] = null;

    View row;

    public ContactListAdapter(Context context, int layoutResourceId, ContactList[] objects) {
        super(context, layoutResourceId, objects);
        // TODO Auto-generated constructor stub

        this.context = context;
        this.layoutResourceId = layoutResourceId;
        this.objects = objects; 
        System.out.println(objects[1].getName());
        System.out.println(objects[1].getNumber());
        System.out.println(objects[1].getImageIcon());
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub

        row = convertView;
        final ContactListHolder holder;

        if ( row == null ) {

            LayoutInflater inflater = ((Activity)context).getLayoutInflater();
            row = inflater.inflate(layoutResourceId, parent, false);

            holder = new ContactListHolder();
            holder.image    = (ImageView) row.findViewById(R.id.contactImage);
            holder.name     = (TextView) row.findViewById(R.id.contactName);
            holder.number   = (TextView) row.findViewById(R.id.contactNumber);
            holder.check    = (CheckBox) row.findViewById(R.id.selectedContact);

            row.setTag(holder);

        } else {

            holder = (ContactListHolder)row.getTag();
        }

        ContactList contact = objects[position];
        if(contact.imageIcon != null) {

            Bitmap imgBitmap = BitmapFactory.decodeByteArray(contact.imageIcon, 0, contact.imageIcon.length);
            holder.image.setImageBitmap(imgBitmap);
        } else {

            holder.image.setImageResource(R.drawable.ic_launcher);
        }

        holder.name.setText(contact.name);
        holder.number.setText(contact.number);
        holder.check.setChecked(objects[position].isSelected());    

        return row;

    }

    static class ContactListHolder {

        ImageView image;
        TextView name;
        TextView number;
        CheckBox check;
    }
}

Ich habe mehr als 100 Kontakte, also nur 3 Objekte hinzugefügt. In dieser Kontaktliste erhalte ich erfolgreich Kontaktbild, Name, Nummer.

Was ist das Problem derListenansicht kann nicht klicken? Ich hoffe, einer von euch wird mich führen. Danke im Voraus.

Dank an alle. Jetzt haben Sie das Ergebnis durch einfaches Hinzufügen erhaltenandroid:focusable="false" in meinen all child views. Danke für eure Hinweise.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage