SimpleCursorAdapter and ViewBinder - Binding data to ListView items to be retrieved on click

后端 未结 2 1106
北荒
北荒 2021-01-21 07:22

So I\'ve got a ListView (using a ListActivity) that I\'m populating from a SQLiteDatabase. I\'m trying to attach the ID (PK) of the row t

相关标签:
2条回答
  • 2021-01-21 07:33

    This depends on your implementation of R.layout.favorite. If you have this layout contains a parent view with child TextViews for e.g. the tag you set is for the TextViews while the View v received from the onListItemClick() is the parent View. You need to make sure that you receive the tag for the same view you set by using:

        @Override      
        protected void onListItemClick(ListView l, View v, int position, long id) {
        Object wordID = v.getChild(0).getTag();          
        Toast.makeText(getBaseContext(), "ID=" + wordID, 1).show();      
        }    
    
    0 讨论(0)
  • 2021-01-21 07:48

    You probably should get the cursor from the adapter. This way if your cursor gets replaced you are still are still getting a valid cursor.

    @Override
        protected void onListItemClick(ListView l, View v, int position, long id) {
           Cursor cursor =  adapter.getCursor();
           cursor.moveToPosition(position);
           String id = cursor.getString(cursor.getColumnIndex("primary key field name in database");
           Toast.makeText(getBaseContext(), "ID=" + id, 1).show();
        } 
    

    NOTE : your adapter must be declared as a SimpleCursorAdapter other wise you should downcast it.

    0 讨论(0)
提交回复
热议问题