This works for me;

    private Cursor c;
    @Override
    public void onCreate(Bundle icicle) {
            super.onCreate(icicle);
            Integer category = this.getIntent().getIntExtra("category", -1);
            mediator = new SqliteMediator(this);
            c = mediator.getFitlerNames(category);
            ListAdapter adapter =
                    new SimpleCursorAdapter(this,
                                    R.layout.row,
                                    c,
                                    new String[] {column},
                                    new int[] {R.id.name});
            setListAdapter(adapter);
    }

    public void onListItemClick(ListView parent, View v, int position, long
id) {
        c.moveToPosition(position);
        int filterId = c.getInt(0);
        c.close();
        mediator.onStop();
        setResult(RESULT_OK, new Intent().putExtra("_id", filterId));
        finish();
    }

On Sun, Mar 8, 2009 at 7:56 PM, Gavin Aiken <[email protected]>wrote:

> Hi guys,
>
> I use a SimpleCursorAdapter like this;
>
>         @Override
>         public void onCreate(Bundle icicle) {
>                 super.onCreate(icicle);
>                 this.getIntent().getIntExtra("category", -1);
>                 Integer category = this.getIntent().getIntExtra("category",
> -1);
>                 SqliteFilterMediator mediator = new
> SqliteFilterMediator(this);
>                 ListAdapter adapter =
>                         new SimpleCursorAdapter(this,
>                                         R.layout.row,
>                                         c,
>                                         new String[] {column},
>                                         new int[] {R.id.name});
>                 setListAdapter(adapter);
>         }
>
>         public void onListItemClick(ListView parent, View v, int position,
> long id) {
>            // Position doesn't necessarily map to _id
>             setResult(RESULT_OK, this.getIntent().putExtra("_id",
> position));
>             finish();
>         }
>
> I want to return the 'id' which is paired with the text on the ListItem in
> the database (And in the cursor). Currently I return the position of the
> list item clicked.
>
> The cursor might return items with ids that are out of order with the
> position of the list, or it could contain gaps in the sequence of integers,
> as such the position isn't enough to map to the id of the row selected in
> the database so that I can act acordingly.
>
> I hope my situation makes sense, I think it might involve displaying the
> id, casing the view clicked and somehow grabbing the displayed integer back
> as the id, this seems a bit ridiculous though so I'm hoping there is a
> simpler way to retrieve the id without making another database query.
>
> Many thanks!
>
> Gav
>
>
>
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to