簡體   English   中英

在列表視圖中未使用自定義布局行調用OnItemClickListener

[英]OnItemClickListener not called with custom layout row in ListView

我有這樣的問題。 我試圖在ListView獲取行的ID。 為此,我正在使用setOnItemClickListener

wyswietlenieZadan = (ListView)findViewById(R.id.ListView);
mAdapter = new ArrayAdapter<>(this, R.layout.zadania, R.id.opisZadania, listaZadan);
wyswietlenieZadan.setAdapter(mAdapter);
wyswietlenieZadan.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Toast.makeText(getApplicationContext(), "Twoje id: " +id, Toast.LENGTH_SHORT).show();
    }
});

這是我的zadania.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center_vertical">

    <TextView
        android:id="@+id/opisZadania"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello"
        android:textSize="20sp"
        android:layout_marginStart="32dp"
        android:layout_alignParentStart="true"
        android:layout_marginTop="12dp"
        android:clickable="true"
        android:contextClickable="true" />

    <ImageButton
        android:layout_width="wrap_content"
        app:srcCompat="@android:drawable/ic_menu_close_clear_cancel"
        android:id="@+id/task"
        android:layout_marginEnd="19dp"
        android:layout_height="wrap_content"
        style="@android:style/Widget.ImageButton"
        android:background="@android:drawable/ic_delete"
        android:onClick="usunZadanie"
        android:layout_alignTop="@+id/opisZadania"
        android:layout_alignParentEnd="true"
        android:focusable="false" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:srcCompat="@android:drawable/ic_menu_edit"
        android:id="@+id/imageView"
        android:layout_toStartOf="@+id/task"
        android:layout_alignTop="@+id/task"
        android:onClick="edytujZadanie"
        android:focusable="false" />

</RelativeLayout>

它不工作,但是當我使用simple_list_item_1.xml作為布局而不是zadania.xml ,我可以得到每個記錄的ID。 有人知道為什么它不適用於我的自定義布局嗎?

更改:

Toast.makeText(getApplicationContext(), "Twoje id: " +id, Toast.LENGTH_SHORT).show();

至:

Toast.makeText(getApplicationContext(), "Twoje id: " +position, Toast.LENGTH_SHORT).show();

因為position變量為您提供了您單擊的項目的位置。 如果單擊第一個項目,它將顯示Twoje id:0;如果單擊第二個項目,則將顯示Twoje id:1,依此類推...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM