Intereting Posts
Google Play Store: приложения не требуют дополнительных специальных разрешений Android Java runOnUiThread () Как добавить теги в xml в android? И как сохранить этот xml-файл? Может ли телефон Android использовать библиотеку Windows DirectX? Время ожидания в DefaultHttpClient Class Android Откройте встроенную камеру Android с помощью OpenCV Для вызова требуется уровень API 23 (текущий минимум равен 14): android.app.Activity # requestPermissions, checkSelfPermission RequestFeature () необходимо вызвать перед добавлением содержимого Как закрыть приложение на вкладке chrome custom close Android – как передать данные в Runnable в runOnUiThread? Google Cloud Endpoint продолжает бросать исключение «неожиданного конца потока» Android: не удается успешно импортировать BaseGameUtils в Eclipse Как воспроизводить мелодию звонка / сигнала тревоги в Android Кнопка создания Android-программ Как удалить последовательные строки с дублирующимися данными в определенных полях (в SQLite)?

Android list view setOnItemClickListener не работает

Я хочу скрыть поле редактирования текста и кнопки вначале в виде списка и показать, что редактирование текста и кнопки для определенного raw в представлении списка при щелчке на этом сыром. Поэтому я попытался установить высоту в 0 в макете xml и затем установить ее К некоторому другому значению, когда пользователь нажимает на raw, но он не работает. Я думаю, что мое событие с просмотром списка не работает. В макете Android, который у меня есть в виде списка, есть изображение в виде кнопки, редактируйте текстовое поле и список. Как следует

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainPortal" > <ListView android:id="@+id/employeeListView" android:layout_width="650dp" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="25dp" android:clickable="true"> </ListView> <EditText android:id="@+id/empPin" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/iv_start_journey_btn" android:layout_marginBottom="56dp" android:layout_marginRight="17dp" android:layout_toLeftOf="@+id/employeeListView" android:ems="10" android:inputType="number" android:hint="@string/add_emp_pin_hint" > <requestFocus /> </EditText> <ImageView android:id="@+id/iv_start_journey_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/employeeListView" android:layout_alignRight="@+id/empPin" android:layout_marginBottom="84dp" android:onClick="startJourney" android:src="@drawable/start" /> </RelativeLayout> 

Я использовал следующий пользовательский план для просмотра списка

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ImageView android:id="@+id/emp_avatar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginTop="18dp" android:adjustViewBounds="true" android:maxHeight="80dp" android:maxWidth="80dp" android:src="@drawable/person" /> <TextView android:id="@+id/emp_number" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/emp_avatar" android:layout_toRightOf="@+id/emp_avatar" android:text="Medium Text" android:textAppearance="?android:attr/textAppearanceMedium" /> <EditText android:id="@+id/empPin" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_alignBottom="@+id/emp_avatar" android:layout_alignRight="@+id/emp_number" android:layout_toRightOf="@+id/emp_avatar" android:ems="10" android:inputType="number" > <requestFocus /> </EditText> <Button android:id="@+id/empAdd" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_alignBaseline="@+id/empPin" android:layout_alignBottom="@+id/empPin" android:layout_marginLeft="20dp" android:layout_toRightOf="@+id/empPin" android:text="@string/emp_add_btn" /> 

Здесь я размещаю код Activity.java.

 public class MainPortal extends Activity { private List<Employee> employees = new ArrayList<Employee>(); EditText et; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_portal); populateEmployeeList(); //populsteListView(); ListView list = (ListView) findViewById(R.id.employeeListView); ArrayAdapter<Employee> adapter = new MylistAdapter(); list = (ListView) findViewById(R.id.employeeListView); list.setAdapter(adapter); list.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { //I ADDED ON CLICK IMPLEMENTATION HERE, BUT THIS IS NOT WORKING Toast.makeText(getApplicationContext(), "CLICKED", Toast.LENGTH_SHORT).show(); } }); private void populateEmployeeList() { ... } private class MylistAdapter extends ArrayAdapter<Employee>{ public MylistAdapter(){ super(MainPortal.this,R.layout.item_view,employees); } @Override public View getView(int position, View convertView, ViewGroup parent) { View itemView = convertView; if(itemView==null){ itemView = getLayoutInflater().inflate(R.layout.item_view, parent,false); } Employee currentEmployee = employees.get(position); //Avatar ImageView imageView = (ImageView) itemView.findViewById(R.id.emp_avatar); imageView.setImageResource(currentEmployee.getAvatarId()); //Employee number TextView emp_id = (TextView) itemView.findViewById(R.id.emp_number); emp_id.setText(currentEmployee.getId()); et = (EditText) itemView.findViewById(R.id.empPin); return itemView; } } } 

Выше я опубликовал несколько кодов, которые я считаю важными. Может ли кто-нибудь помочь мне выполнить эту задачу. Заранее спасибо.

Добавьте к своей кнопке следующие атрибуты:

  android:focusable="false" android:focusableInTouchMode="false" 

ListView setOnItemClickListener не работает, добавив кнопку

Ваш edittext сосредоточен на нажатии элемента списка? Если это так, удалите фокус на edittext.

Здесь ваш edittext внутри списка имеет все внимание, поэтому этот список onClick не работает. Удалите фокус из окна editext, и он начнет работать

 // try this public class MainPortal extends Activity { private List<Employee> employees = new ArrayList<Employee>(); EditText et; ListView list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_portal); populateEmployeeList(); //populsteListView(); list = (ListView) findViewById(R.id.employeeListView); ArrayAdapter<Employee> adapter = new MylistAdapter(); list.setAdapter(adapter); list.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { //I ADDED ON CLICK IMPLEMENTATION HERE, BUT THIS IS NOT WORKING Toast.makeText(getApplicationContext(), "CLICKED", Toast.LENGTH_SHORT).show(); } }); } } 

В моем случае setOnItemClickListener отлично работает в версиях Android Upto 5.1.1, но на Android 6.0.1. Наконец-то я нашел решение. Попробуйте это.
Удалите эти строки из своего XML-макета

 android:orientation="vertical" tools:context=".ManageRequest" android:contextClickable="true" 

Работает для меня в Android версии 6.0.1 Надеюсь, что ваши проблемы решены .. !!! Счастливое кодирование 🙂