Tôi đã tạo một ứng dụng bằng cách sử dụng đồng bộ hóa liên hệ. Tôi liệt kê thông tin liên hệ sau đây với ảnh, tên và số. Tôi liệt kê thành công tất cả những điều đó trong một tùy chỉnh ListView, nhưng tôi không thể nhấp vào ListView. Có vẻ như đã bị khóa, Không thể nhấp vào nó.Tôi không thể nhấp vào ListView trong Android?
Nhưng tôi đã thực hiện thủ tục tương tự cho hoạt động khác. Sử dụng tuỳ chỉnh ListView nhưng tôi có thể nhấp vào chế độ xem này và nó hoạt động tốt.
Sự cố là gì? đây là mẫu mã của tôi:
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");
Đây là danh sách liên hệ có tên liên hệ, số và byte [] cho imageBlob. Nếu hình ảnh là null, tôi đặt ic_launcher mặc định làm hình ảnh liên hệ. Lớp bộ điều hợp là:
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;
}
}
Tôi có hơn 100 liên hệ để chỉ thêm 3 đối tượng. Trong danh sách liên lạc này, tôi đã nhận được hình ảnh, tên, số liên lạc thành công.
Sự cố ListView không thể nhấp là gì? Tôi hy vọng bất kỳ một trong những u sẽ hướng dẫn tôi. Cảm ơn trước.
Xin cảm ơn tất cả. bây giờ có kết quả bằng cách chỉ thêm android:focusable="false"
trong tất cả các chế độ xem con của tôi. cảm ơn cho ur hướng dẫn.
phương pháp này không hoạt động? bất kỳ giải pháp khác – Amarnath
Cảm ơn bạn bây giờ nó hoạt động. – Amarnath
nếu nó hoạt động cảm thấy tự do để chấp nhận câu trả lời – thepoosh