Ես ունեմ ListView՝ editText տարրով: Իմ ցանկի դիտումը կարելի է սեղմել: Սեղմելուց հետո մանրամասների էկրան կբացվի: ListView-ի յուրաքանչյուր տող ունի խմբագրման տեքստ: Երբ EditText-ը սեղմվում է, ստեղնաշարը բացվում է և կարող է մուտքագրվել մի թիվ:
Քանի որ ես չեմ կարող օգտագործել onItemClickListener-ը, եթե ցուցակի տողում ունեմ կենտրոնացված տարրեր, ես ընտրում եմ օգտագործել հատուկ լսող: Ադապտորում.
@NonNull
@Override
public View getView(int position, View convertView, @NonNull ViewGroup parent) {
convertView.setOnClickListener(view -> {
onCustomClickListener.onItemClick(position);
});
}
OnCustomClickListener-ն իրականացվում է հատվածում: այս լուծումն ինձ մոտ աշխատեց այնպես, ինչպես սպասվում էր:
Իմ հարցն այն է, թե որն է տարբերությունը onItemClickListener-ի և այս սովորական լսողի միջև: Արդյո՞ք onItemClickListener-ն ինչ-որ կերպ օպտիմիզացված է, և այդ պատճառով մենք սովորաբար օգտագործում ենք այն:
ListView-ում մենք չենք կարող ունենալ և՛ տող (կենտրոնացման ենթակա) և՛ տարրեր, որոնք կարող են նաև լինել կենտրոնացված (editText): Եթե ցուցակի տողում ունենք editText, ապա onItemClickListener-ը չի կանչվի, եթե մենք չավելացնենք android:descendantFocusability="blocksDescendants"
ցուցակի row.xml դասավորության մեջ:
Շնորհակալություն.