0

次のような Web ページのデータベースがあります。

import android.provider.BaseColumns;
    public interface ThreadDatabase extends BaseColumns {
    String TABLE_NAME = "Threads";
    String TITLE = "Title";
    String DESCRIPTION = "Description";
    String URL = "Url";
    String[] COLUMNS = new String[] { _ID, TITLE, DESCRIPTION, URL };
}

そして、すべての行にタイトルと説明を表示する SimpleCursorAdapter を使用したアクティビティのリストビュー。

Cursor c = dbhelper.getDatabase();
setListAdapter(new SimpleCursorAdapter(this,
            android.R.layout.simple_list_item_2, c, new String[] {
                    ThreadDatabase.TITLE, ThreadDatabase.DESCRIPTION },
            new int[] { android.R.id.text1, android.R.id.text2, })

アイテムをクリックすると正しいURLが開かれるように、onListItemClickメソッドを再定義するにはどうすればよいですか?

protected void onListItemClick(ListView l, View v, int position, long id) {
    ???Missing part???
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
    startActivity(intent);
}
4

2 に答える 2

0

SimpleCursorAdapter への参照が必要なので、フィールドに初期化します。

フィールド mAdapter があると仮定すると、次のようなカーソルを取得できます。

protected void onListItemClick(ListView l, View v, int position, long id) {

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

    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
    startActivity(intent);
}

それが役立つことを願っています。

于 2012-07-04T19:19:09.250 に答える
0

あなたのアクティビティはListActivityを拡張していると思います。その場合、onListItemClick() で行う必要があるのは次のとおりです。

protected void onListItemClick(ListView l, View v, int position, long id) {

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

    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
    startActivity(intent);
}
于 2012-07-04T19:56:39.440 に答える