1
我從數據庫中讀取書籤,用listview顯示它,但是當點擊 列表項時,它無法正確加載url,瀏覽器應用 源代碼中的一些代碼。如何修改書籤的列表項點擊監聽器
我有關於Android和Java沒有太多的經驗,這樣的麻煩也 混淆了兩天
感謝您的幫助
public class bookmarks extends Activity {
private Cursor bookmarks;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bookmarks = Browser.getAllBookmarks(getContentResolver());
int urlColumn = bookmarks.getColumnIndex(android.provider.Browser.BookmarkColumns.URL);
Cursor results;
String[] proj = new String[]{
android.provider.Browser.BookmarkColumns.URL,
android.provider.Browser.BookmarkColumns.TITLE
};
int[] to = new int[]{
android.R.id.text2,
android.R.id.text1
};
String whereClause;
String orderBy = Browser.BookmarkColumns.VISITS + " DESC";
whereClause = Browser.BookmarkColumns.BOOKMARK + " != 0";
results = managedQuery(Browser.BOOKMARKS_URI,
Browser.HISTORY_PROJECTION, whereClause, null, orderBy);
startManagingCursor(results);
ListAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, results, proj, to);
ListView myListView = (ListView) findViewById(R.id.list);
myListView.setAdapter(adapter);
myListView.setOnItemClickListener(mListener); // 設置點擊
}
// 偵聽事件
private AdapterView.OnItemClickListener mListener = new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View v, int position, long id) {
// TODO Auto-generated method stub
loadUrl(position);
}
};
// 載入網址
private void loadUrl(int position) {
Intent intent = (new Intent()).setAction(getUrl(position));
setResultToParent(RESULT_OK, intent);
finish();
}
public String getUrl(int position) {
String url = getString(Browser.HISTORY_PROJECTION_URL_INDEX, position);
return url;
}
// This Activity is generally a sub-Activity of CombinedHistoryActivity. In
// that situation, we need to pass our result code up to our parent.
// However, if someone calls this Activity directly, then this has no
// parent, and it needs to set it on itself.
private void setResultToParent(int resultCode, Intent data) {
Activity a = getParent() == null ? this : getParent();
a.setResult(resultCode, data);
}
}