Ich kann nicht klicken Sie auf das ListView in android?

Machte ich eine app mit Kontakt-sync. Ich Liste die folgenden Kontakt-info mit Foto, name und Nummer. Ich erfolgreich die Liste all jener Dinge, die in einem benutzerdefinierten ListView, aber ich kann nicht klicken Sie auf die ListView. Es sieht aus wie gesperrt, Nicht klicken Sie auf es.

Aber ich habe einen gleichen Prozedur zu einer anderen Aktivität. Verwenden von benutzerdefinierten ListView aber ich kann auf diese Ansicht klicken und es funktioniert gut.

Was ist das problem? hier ist mein Beispiel-coding:

    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 Kontaktliste ist eine Klasse, die hat den Kontaktnamen, die Telefonnummer und das byte[] für imageBlob. Wenn das Bild ist null, ich habe die Standard-ic_launcher als Kontakt-Bild. Die adapter-Klasse:

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

Habe ich mehr als 100 Kontakte, also nur 3 Objekte. In diesem Kontakt-Liste habe ich erfolgreich erhalten, Kontakt Bild, name, Nummer.

Was ist das problem der ListView nicht auf? Ich hoffe, jeder von u wird mich leiten. Vielen Dank im Voraus.


Danke an alle. jetzt bekam Sie das Ergebnis, indem Sie nur android:focusable="false" in meinem alle untergeordneten Ansichten. vielen Dank für ur Führungen.

InformationsquelleAutor Amarnath | 2012-06-26
Schreibe einen Kommentar