0

Когда я использовал адаптер массива пользовательского списка для просмотра списка, данные отображаются в списке, но не доступны для просмотра. Я уже установил прослушиватель в элементе списка listview, но он не работает.Адаптер адаптера пользовательского списка не может быть нажат

Кроме того, я нашел другое решение, позволяющее сделать строки кликабельными и установить фоновые рисунки на макет элемента списка макетов списка макетов, но это плохой трюк для использования этого решения.

Есть ли другие решения для этого?

Может ли любое тело сказать мне, почему это происходит? В списке, функциональность которого по умолчанию не работает на пользовательском адаптере массива

Вот мой код:

public class Model { 
    String name; 
    String id; 
    String price; 
} 

mArrayList = new ArrayList<Model>(); 
// mArrayList has some data in it 

mListiView.setsetAdapter(new myCoustomAdapter(mContext, mArrayList)); 
mListiView.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     Toast.makeText(getBaseContext(), ""+position, Toast.LENGTH_LONG).show(); 
    } 
}); 

public class myCoustomAdapter extends ArrayAdapter<Model> { 
    ArrayList<Model> mList; 

    public myCoustomAdapter(Context context, ArrayList<Model> list) { 
     super(context, R.layout.item); 
     this.mList=list; 
    } 

    @Override 
    public int getCount() { 
     return this.mList.size(); 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     // layout data here 
     return view; 
    } 
} 

Ничто не происходит по пункту мыши.

+0

сообщения коды пользовательского адаптера и макет XML. – bgse

ответ

2

Первое, что вы должны отметить здесь, когда есть элементы Clickable, такие как кнопки или кнопки ImageButtons, присутствующие в элементе ListView, они контролируют события щелчка. И поэтому ваш ListView не получит возможность принять событие click.

Что вам нужно сделать, установите для параметра focusable attribute значение false для Button или ImageButton, которое у вас есть в ListView. Но все же они будут работать без каких-либо проблем, а также будет работать и с onListItemClick в ListView.

Попробуйте это,

<Button android:id="@+id/textsize_increaser" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_toRightOf="@+id/back_button" 
    android:focusable="false" 
    android:text=" A + "/> 

Здесь я добавил этот андроид: фокусируемый = "ложь", и она отлично работает. попробуй.

Вот ссылка для справки Click is not working on the Listitem Listview android

+0

@Ricky ... Спасибо –

0

Скорее всего, ваш макет строки списка списка содержит элемент, который можно щелкнуть, это «кража» ваших кликов.

+0

Каково ваше предложенное решение по этому вопросу –

+0

Просмотрите макет своей строки. Убедитесь, что у вас нет элемента, который можно щелкнуть, который может красть клик. Исправьте макет. Или измените свой адаптер и назначьте onClickListener либо в виде строки, либо в элементах определенного вида. –

Смежные вопросы