2017-12-08 16 views
-1

私はcustomAdapterクラスとlistViewを持っています。私は3つのtextviewと1つのimageButtonでsingle_rowレイアウトを作った。 今私の質問は、imageButtonをクリックし、行全体のクリックを無視するだけで、DBのidフィールドを取得する方法はありますか? 私は私がしてIDを取得することができます知っている:kotlinでlistViewアイテムのimageButtonをクリックした後でDB idを取得する方法

mListView.onItemClickListener = AdapterView.OnItemClickListener { adapterView, view, position, id -> 
       view.delete.setOnClickListener(){ 
        Toast.makeText(context,""+id,Toast.LENGTH_SHORT).show() 
       } 

が、これは私が全体の行をクリックした場合にのみ働いています。 xmlのルートにandroid:descendantFocusability="blocksDescendants"を入れてみましたが、imageButtonノードでandroid:focusable="false"としましたが、行全体が認識されている間はimageButtonは認識されません。私が使用している場合のみbutton.onClickListener()... クリックが認識されます。しかし、そのように私はIDを取得する方法を知らない。

私のアダプタクラスコード:

class MyAdapter(activity: Activity, context: Context, cursor: Cursor) : CursorAdapter(context, cursor, true) { 

    var inflater: LayoutInflater 
    lateinit var mListView: ListView 

    init { 
     this.inflater = LayoutInflater.from(context) 
     mListView = activity.listView 
    } 

    override fun newView(context: Context?, cursor: Cursor?, parent: ViewGroup?): View { 
     val view = LayoutInflater.from(context).inflate(R.layout.single_row, parent, false) 

     return view; 
    } 
override fun bindView(view: View, context: Context, cursor: Cursor) { 
     val latitude = view.findViewById(R.id.latitude) as TextView 
     val longtitude = view.findViewById(R.id.longtitude) as TextView 
     val date = view.findViewById(R.id.date) as TextView 
     val asu = view.findViewById(R.id.asu) as TextView 

     latitude.setText(cursor.getString(cursor.getColumnIndex(Constants.Signal.LATITUDE))) 
     longtitude.setText(cursor.getString(cursor.getColumnIndex(Constants.Signal.LONGTITUDE))) 
     date.setText(cursor.getString(cursor.getColumnIndex(Constants.Signal.DATE))) 
     asu.setText(cursor.getString(cursor.getColumnIndex(Constants.Signal.ASU))) 

    } 
} 

私SINGLE_ROWレイアウト:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" android:layout_width="match_parent" 
    android:id="@+id/list_item" 
    android:layout_height="match_parent" 
    android:descendantFocusability="blocksDescendants"> 


    <TextView 
     android:id="@+id/latitude" 
     android:layout_width="23dp" 
     android:layout_height="53dp" 
     android:layout_weight="0.20" 
     android:text="latitude" 
     android:gravity="center" /> 

    <TextView 
     android:id="@+id/longtitude" 
     android:layout_width="23dp" 
     android:layout_height="53dp" 
     android:layout_weight="0.20" 
     android:text="longtitude" 
     android:gravity="center" /> 

    <TextView 
     android:id="@+id/date" 
     android:layout_width="23dp" 
     android:layout_height="53dp" 
     android:layout_weight="0.20" 
     android:gravity="center" 
     android:text="date" /> 

    <TextView 
     android:id="@+id/asu" 
     android:layout_width="23dp" 
     android:layout_height="53dp" 
     android:layout_weight="0.20" 
     android:gravity="center" 
     android:focusable="false" 
     android:text="asu"/> 

    <ImageButton 
     android:id="@+id/delete" 
     android:layout_width="0.23dp" 
     android:layout_height="53dp" 
     android:layout_weight="0.20" 
     android:focusable="false" 
     android:src="@android:drawable/ic_menu_delete" /> 
</LinearLayout> 

答えて

関連する問題