При настройке OnItemLongClickListener для моего списка никаких действий не выполняется, когда я нажимаю на элемент. Как мне это решить?

Я беру данные из своей базы данных и хочу установить это как элемент списка. При нажатии и удержании элемента я хочу, чтобы диалоговое окно открывалось, предлагая пользователю выбрать один из заданных параметров. Мой код выглядит следующим образом: Мой класс MainActivity.java

public class MainActivity extends AppCompatActivity {
ListView todoList;
DbHelper dbHelper;
ArrayAdapter<String> myAdapter;
Button rename, delete;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    dbHelper=new DbHelper(this);
    todoList=(ListView)findViewById(R.id.to_do);
    loadTaskList();
    todoList.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> parent, View view, int i, long l) {
            Dialog dialog=new Dialog(MainActivity.this);
            dialog.setContentView(R.layout.item_dialog);
            dialog.setTitle("Select");
            rename = dialog.findViewById(R.id.rename_task);
            delete = dialog.findViewById(R.id.delete_task);
            dialog.show();
            return false;
        }
    });
}

private void loadTaskList() {
    ArrayList<String> taskList=dbHelper.getTask();
    if(myAdapter==null){
        myAdapter=new ArrayAdapter<String>(this,R.layout.todo_item,R.id.task_title,taskList);
        todoList.setAdapter(myAdapter);
    }else {
        myAdapter.clear();
        myAdapter.addAll(taskList);
        myAdapter.notifyDataSetChanged();
    }
}

Моя активность_main.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
    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"
    tools:context="com.example.mylist.MainActivity">

    <ListView
            android:id="@+id/to_do"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:padding="5dp"/>
</LinearLayout>

Мой макет для элемента списка:

<?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:clickable="true">
    <TextView
        android:id="@+id/task_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="Task"
        android:textSize="20sp"
        android:layout_centerVertical="true"
        android:padding="5dp"/>

    <ImageButton
        android:id="@+id/task_delete"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:src="@drawable/ic_delete_black_24dp" />
    <ImageButton
        android:id="@+id/task_done"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_done_black_24dp"
        android:layout_toLeftOf="@id/task_delete"/>
</RelativeLayout>

person sahaj jain    schedule 27.06.2017    source источник
comment
Используйте registerForContextMenu внутри onCreate, передав свой список в качестве параметра. Затем определите свое меню внутри onCreateContextMenu и ответьте на выбор пользователя в onContextItemSelected.   -  person dr_g    schedule 27.06.2017
comment
Просто удалите android:clickable="true" из RelativeLayout в макете элемента списка, и он должен работать.   -  person Daniel Nugent    schedule 27.06.2017
comment
@DanielNugent Это не сработало. Это все еще то же самое.   -  person sahaj jain    schedule 27.06.2017