开发者

onListItemClick, what statement do I need to get the value?

i can add to a db and list as a listview. When I click a list item using onListItemClick, what statement do I need to get the value?

Thanks in advance.

public class Main extends ListActivity {
private static String[] FROM = { _ID, DESCRIPTION, UN };
private static String ORDER_BY = DESCRIPTION + " ASC";
private static int[] TO = {R.id.itemrowid, R.id.itemdescription, R.id.itemun };
private EventsData events;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    events = new EventsData(this);
    try {
        Cursor cursor = getEven开发者_StackOverflow社区ts();
        showEvents(cursor);
     } finally {
        events.close();
     }

**public void onListItemClick(ListView parent, View v, int position, long id) {
    // What statement to put here to get the value of _ID,DESCRIPTION, UN
    // selected**?
}

private Cursor getEvents() {
    // Perform a managed query. The Activity will handle closing
    // and re-querying the cursor when needed.
    SQLiteDatabase db = events.getReadableDatabase();
    Cursor cursor = db.query(TABLE_NAME, FROM, null, null, null,
            null, ORDER_BY);
    startManagingCursor(cursor);
    return cursor;
}

private void showEvents(Cursor cursor) {
    // Set up data binding
    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
            R.layout.item, cursor, FROM, TO);
    setListAdapter(adapter);
}


First, you need to obtain item at clicked position:

Cursor cursor = getListAdapter().getItem(position);

Then you can get data from this cursor (I don't know what types do you use, so just for example it will be int and String):

int id = cursor.getInt(cursor.getColumnIndex(_ID));
String description = cursor.getString(cursor.getColumnIndex(DESCRIPTION));

See documentation for Cursor's available methods.


Adding to sergey answer you can also directly see what View was clicked and use findViewById() to find the components, therefore, the values you want.

This is just an alternative being the method Sergey much less 'patchy'

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜