如何使用浏览器内容提供商?

时间:2011-10-08 11:59:49

标签: android browser android-contentprovider

我编写了这个简单的代码来从浏览器中获取书签:

public class BroswerProviderActivity extends ListActivity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Cursor cursor = getContentResolver().query(Browser.BOOKMARKS_URI, null, null, null, null);

        String s[] = new String[]{
                Browser.BookmarkColumns.BOOKMARK,
                Browser.BookmarkColumns.TITLE};
        int view[] = new int[]{
                R.id.Bookmark, R.id.title};

        SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.main, cursor, s, view);

        this.setListAdapter(adapter);
    }
}

我还在清单文件中添加了权限:

<uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS">

但是当我运行这个应用程序时,它无法运行。它显示一些错误并要求强制停止应用程序。这有什么问题?请帮帮我。谢谢

以下是我从LogCat窗口获取的异常。但这与此无关:enter image description here

这是我写的xml文件:

<ListView android:transcriptMode="normal" android:id="@+id/list"     android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1.0"></ListView>
 <TextView android:text="TextView" android:id="@+id/bookmark" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
 <TextView android:text="TextView" android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>

1 个答案:

答案 0 :(得分:1)

由于您使用ListActivity布局中的ListView ID 必须<{1}}。

请参阅docs