2017-01-05 8 views
0

私はこのような問題があります。私はListViewに行IDを取得しようとしています。行うには私はsetOnItemClickListenerを使用しています:ここでOnItemClickListenerがListViewのカスタムレイアウト行で呼び出されていません

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> 

それは仕事をdoesntのが、私は、レイアウトの代わりzadania.xmlとしてsimple_list_item_1.xmlを使用する場合、私は、各レコードのIDを取得することができます。誰も私のカスタムレイアウトでうまくいかない理由を知っていますか?

+0

なぜsimple_list_item_1.xmlを使用するべきですか? – JuLes

+0

私はsimple_list_item_1を使いたくありません。しかし、これでSetOnItemClickListenerは正常に動作します。 – Graphite

答えて

0

変更:

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

へ:位置変数は、あなただけのクリックした項目の位置を与えるよう

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

。最初のアイテムをクリックするとTwoje id:0が表示され、2番目のアイテムをクリックするとTwoje id:1などが表示されます。