Android 从web获取favicon并将其保存到Pojo类中声明的图标

Android 从web获取favicon并将其保存到Pojo类中声明的图标,android,sqlite,android-recyclerview,Android,Sqlite,Android Recyclerview,我有一个RecycleServiceAdapter,我称之为MyAdapter,在那里我设置了一个书签:ID、名称、图标、搜索URL 我可以显示所有这些图标,但对于图标,它只能在Drawable中工作。 我不想将位图转换为可绘制的,我只想获取保存在DB中的url格式。 我想从位图中提取图标,因为图标取决于它是从哪个搜索URL获得的。 SearchUrl=“” 在图标中,我需要显示youtube的图标。 正如我所说,这是从drawable手动工作,但这取决于用户,我不知道它是写什么样的Url 下面

我有一个
RecycleServiceAdapter
,我称之为
MyAdapter
,在那里我设置了一个书签:ID、名称、图标、搜索URL

我可以显示所有这些图标,但对于图标,它只能在
Drawable
中工作。 我不想将位图转换为可绘制的,我只想获取保存在DB中的url格式。
我想从位图中提取图标,因为图标取决于它是从哪个搜索URL获得的。
SearchUrl=“” 在图标中,我需要显示youtube的图标。 正如我所说,这是从drawable手动工作,但这取决于用户,我不知道它是写什么样的Url

下面您可以找到代码

@Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, final int position) {
        final int itemType = getItemViewType(position);
        if (itemType == ITEM_TYPE_ONE) {
            final ViewHolder viewHolder = (ViewHolder) holder;
            viewHolder.tvName.setText(arrayList.get(position).getName());

            Bitmap bitmap = BitmapFactory.decodeStream((InputStream)new URL(viewHolder.tvSearchUrl.setText(arrayList.get(position).getSearchUrl())).getContent()); //Here is the error of the new URL
            viewHolder.tvIcon.setImageBitmap(bitmap);
            viewHolder.tvId.setText(arrayList.get(position).getId());
            viewHolder.tvSearchUrl.setText(arrayList.get(position).getSearchUrl());
            viewHolder.tvNativeUrl.setText(arrayList.get(position).getNativeUrl());
            viewHolder.tvIcon.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent;
                    String Url = viewHolder.tvSearchUrl.getText().toString();
                    String Name = viewHolder.tvName.getText().toString();
                    intent = new Intent(context, BookmarkActivity.class);
                    intent.putExtra("WebSearchUrl", Url);
                    intent.putExtra("WebSearchName", Name);
                    v.getContext().startActivity(intent);
                }
            });


            viewHolder.tvIcon.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View v) {
                    Intent intent = new Intent(context, ActivityChangeBookmark.class);
                    String Url = viewHolder.tvSearchUrl.getText().toString();
                    String Name = viewHolder.tvName.getText().toString();
                    Integer Id = viewHolder.tvId.getId();
                    Bundle extras = new Bundle();
                    viewHolder.tvIcon.buildDrawingCache();
                    Bitmap image = viewHolder.tvIcon.getDrawingCache();
                    intent.putExtra("Url", Url);
                    intent.putExtra("Name", Name);
                    intent.putExtra("ID", Id);
                    extras.putParcelable("Image", image);
                    intent.putExtras(extras);
                    v.getContext().startActivity(intent);
                    return false;
                }
            });

        } else if (itemType == ITEM_TYPE_TWO) {
            ButtonViewHolder buttonViewHolder = (ButtonViewHolder) holder;
            buttonViewHolder.imgButton.setImageResource(arrayList.get(position).getIcon());
        }

    }
如果我更改
viewHolder.tvIcon.setImageResource(arrayList.get(position.getIcon())
除此之外,它仅从可绘制图标和可绘制图标中提取

书签类

public class Bookmark {
    String name, id, nativeUrl, searchUrl;
    int icon;
    int viewType;


    public String getName() { return name; }
    public void setName(String name) {
        this.name = name;
    }

    public int getIcon() { return icon; }
    public void setIcon(int icon) {
        this.icon = icon;
    }

    public String getId(){
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getNativeUrl() {
        return nativeUrl;
    }

    public void setNativeUrl(String nativeUrl) {
        this.nativeUrl = nativeUrl;
    }

    public String getSearchUrl() {
        return searchUrl;
    }

    public void setSearchUrl(String searchUrl) {
        this.searchUrl = searchUrl;
    }
    public int getViewType() {
        return viewType;
    }

    public void setViewType(int viewType) {
        this.viewType = viewType;
    }


    @Override
    public String toString() {
        return "Bookmark{" +
                "name='" + name + '\'' +
                ", icon='" + icon + '\'' +
                ", id='" + id + '\'' +
                ", nativeUrl='" + nativeUrl + '\'' +
                ", searchUrl='" + searchUrl + '\'' +
                '}';
    }
}
 public class ActivityChangeBookmark  extends AppCompatActivity {
 private ArrayList<String> listItems = new ArrayList<String>();
 private RecyclerView recyclerView;
 Button saveBookmark, cancelBookmark;
 TextView name, url;
 ImageView icon, mIcon;
 EditText mName, mUrl, mID;
 public static final String Save_Bookmark = "Save_Bookmark";
 String Url, Name;
 Integer Id;
 MyAdapter myAdapter;
 BookmarkDB bookmarkDB;
 ButtonRobotoMedium removeBookmark, sendToHomeScreen;
 ArrayList<Bookmark> arrayList = new ArrayList<>();


@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_change_bookmark);
    saveBookmark = findViewById(R.id.btnSave);
    name = findViewById(R.id.tvNameEdit);
    url = findViewById(R.id.tvURLEdit);
    recyclerView = findViewById(R.id.myRecyclerView);
    icon = findViewById(R.id.ivFavIcon);
    mName = findViewById(R.id.etNameEdit);
    mUrl = findViewById(R.id.etURLEdit);
    sendToHomeScreen = findViewById(R.id.btnAddIconToDeviceScreen);
    name.setVisibility(View.GONE);
    url.setVisibility(View.GONE);
    bookmarkDB = new BookmarkDB(getApplicationContext());
    Intent intent = getIntent();
    myAdapter = new MyAdapter(getApplicationContext(), arrayList);

    Bundle extras = intent.getExtras();
    if (extras != null) {
        Url = intent.getExtras().getString("Url");
        Name = intent.getExtras().getString("Name");
        Id = intent.getExtras().getInt("ID");

        Bitmap bitmap = intent.getExtras().getParcelable("Image");
        mName.setText(Name);
        mUrl.setText(Url);

        icon.setImageBitmap(bitmap);
        removeBookmark.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                bookmarkDB.deleteName(Id, Name);
                myAdapter.notifyDataSetChanged();
                finish();
            }
        });
    }
     else {
        removeBookmark.setVisibility(View.GONE);
        sendToHomeScreen.setVisibility(View.GONE);
        icon.setImageResource(R.drawable.user_bookmark);
        mName.setText("");
        mUrl.setText("");
    }


    saveBookmark.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            saveData();
            myAdapter.notifyDataSetChanged();
            finish();
            }
    });

public void saveData() {
    Random r = new Random();
    int low = 14;
    int high = 100;
    int result = r.nextInt(high-low) + low;
    bookmarkDB.addBookmark(result, mName.getText().toString(), false, "https://www.google.com/s2/favicons?domain=" + mUrl.getText().toString(), mUrl.getText().toString(), "http://" + mUrl.getText().toString());
 }
}
 public class BookmarkDB extends SQLiteOpenHelper {
    public static final String DBNAME = "bookmarks.db"; // The name of the 
 database file
    public static final int DBVERSION = 1;  // The Database version

    public static final String TBL_BOOKMARK = "bookmark";
    public static final String COL_ID = BaseColumns._ID; // equates to _id
    public static final String COl_NAME = "name";
    public static final String COl_HIDDEN = "hidden";
    public static final String COL_ICON = "icon";
    public static final String COL_NATIVEURL = "nativeurl";
    public static final String COL_SEARCHURL = "searchurl";

    SQLiteDatabase mDB;

    public BookmarkDB(Context context) {
        super(context, DBNAME, null, DBVERSION);
        mDB = this.getWritableDatabase();
    }

    @Override
    public void onCreate(SQLiteDatabase db) {

        // The SQL to be used to create the table
        String crt_bookmark_tbl_sql = "CREATE TABLE IF NOT EXISTS " + TBL_BOOKMARK + "(" +
                COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
                COl_NAME + " TEXT, " +
                COl_HIDDEN + " INTEGER, " +
                COL_ICON + " TEXT, " +
                COL_NATIVEURL + " TEXT," +
                COL_SEARCHURL + " TEXT" +
                ")";
        db.execSQL(crt_bookmark_tbl_sql); // CREATE THE TABLE

    }


    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP IF TABLE EXISTS " + DBNAME);
        onCreate(db);
    }

    public long addBookmark(long id, String name, boolean hidden, String icon, String nativeurl, String searchurl) {
        ContentValues cv = new ContentValues();

        cv.put(COl_NAME,name);
        cv.put(COl_HIDDEN,hidden);
        cv.put(COL_ICON,icon);
        cv.put(COL_NATIVEURL,nativeurl);
        cv.put(COL_SEARCHURL,searchurl);
        // uses the convenience insert method that builds the SQL
        return mDB.insert(TBL_BOOKMARK,null,cv);
    }
    public ArrayList<Bookmark> getAllBookmarks() {
        ArrayList<Bookmark> rv  = new ArrayList<>();
        Cursor csr = mDB.query(TBL_BOOKMARK,null,null,null,null,null, null);
        while (csr.moveToNext()) {
            Bookmark b = new Bookmark();
            b.setId(csr.getString(csr.getColumnIndex(COL_ID)));
            b.setName(csr.getString(csr.getColumnIndex(COl_NAME)));
            b.setIcon(csr.getInt(csr.getColumnIndex(COL_ICON))); // Here I set the icon but I want to set icon from the saved SearchUrl.
            b.setViewType(csr.getInt(csr.getColumnIndex(COl_NAME)));
            b.setNativeUrl(csr.getString(csr.getColumnIndex(COL_NATIVEURL)));
            b.setSearchUrl(csr.getString(csr.getColumnIndex(COL_SEARCHURL)));
            rv.add(b);
        }
        return rv;
    }
ActivityChangeBookmark.class

public class Bookmark {
    String name, id, nativeUrl, searchUrl;
    int icon;
    int viewType;


    public String getName() { return name; }
    public void setName(String name) {
        this.name = name;
    }

    public int getIcon() { return icon; }
    public void setIcon(int icon) {
        this.icon = icon;
    }

    public String getId(){
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getNativeUrl() {
        return nativeUrl;
    }

    public void setNativeUrl(String nativeUrl) {
        this.nativeUrl = nativeUrl;
    }

    public String getSearchUrl() {
        return searchUrl;
    }

    public void setSearchUrl(String searchUrl) {
        this.searchUrl = searchUrl;
    }
    public int getViewType() {
        return viewType;
    }

    public void setViewType(int viewType) {
        this.viewType = viewType;
    }


    @Override
    public String toString() {
        return "Bookmark{" +
                "name='" + name + '\'' +
                ", icon='" + icon + '\'' +
                ", id='" + id + '\'' +
                ", nativeUrl='" + nativeUrl + '\'' +
                ", searchUrl='" + searchUrl + '\'' +
                '}';
    }
}
 public class ActivityChangeBookmark  extends AppCompatActivity {
 private ArrayList<String> listItems = new ArrayList<String>();
 private RecyclerView recyclerView;
 Button saveBookmark, cancelBookmark;
 TextView name, url;
 ImageView icon, mIcon;
 EditText mName, mUrl, mID;
 public static final String Save_Bookmark = "Save_Bookmark";
 String Url, Name;
 Integer Id;
 MyAdapter myAdapter;
 BookmarkDB bookmarkDB;
 ButtonRobotoMedium removeBookmark, sendToHomeScreen;
 ArrayList<Bookmark> arrayList = new ArrayList<>();


@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_change_bookmark);
    saveBookmark = findViewById(R.id.btnSave);
    name = findViewById(R.id.tvNameEdit);
    url = findViewById(R.id.tvURLEdit);
    recyclerView = findViewById(R.id.myRecyclerView);
    icon = findViewById(R.id.ivFavIcon);
    mName = findViewById(R.id.etNameEdit);
    mUrl = findViewById(R.id.etURLEdit);
    sendToHomeScreen = findViewById(R.id.btnAddIconToDeviceScreen);
    name.setVisibility(View.GONE);
    url.setVisibility(View.GONE);
    bookmarkDB = new BookmarkDB(getApplicationContext());
    Intent intent = getIntent();
    myAdapter = new MyAdapter(getApplicationContext(), arrayList);

    Bundle extras = intent.getExtras();
    if (extras != null) {
        Url = intent.getExtras().getString("Url");
        Name = intent.getExtras().getString("Name");
        Id = intent.getExtras().getInt("ID");

        Bitmap bitmap = intent.getExtras().getParcelable("Image");
        mName.setText(Name);
        mUrl.setText(Url);

        icon.setImageBitmap(bitmap);
        removeBookmark.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                bookmarkDB.deleteName(Id, Name);
                myAdapter.notifyDataSetChanged();
                finish();
            }
        });
    }
     else {
        removeBookmark.setVisibility(View.GONE);
        sendToHomeScreen.setVisibility(View.GONE);
        icon.setImageResource(R.drawable.user_bookmark);
        mName.setText("");
        mUrl.setText("");
    }


    saveBookmark.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            saveData();
            myAdapter.notifyDataSetChanged();
            finish();
            }
    });

public void saveData() {
    Random r = new Random();
    int low = 14;
    int high = 100;
    int result = r.nextInt(high-low) + low;
    bookmarkDB.addBookmark(result, mName.getText().toString(), false, "https://www.google.com/s2/favicons?domain=" + mUrl.getText().toString(), mUrl.getText().toString(), "http://" + mUrl.getText().toString());
 }
}
 public class BookmarkDB extends SQLiteOpenHelper {
    public static final String DBNAME = "bookmarks.db"; // The name of the 
 database file
    public static final int DBVERSION = 1;  // The Database version

    public static final String TBL_BOOKMARK = "bookmark";
    public static final String COL_ID = BaseColumns._ID; // equates to _id
    public static final String COl_NAME = "name";
    public static final String COl_HIDDEN = "hidden";
    public static final String COL_ICON = "icon";
    public static final String COL_NATIVEURL = "nativeurl";
    public static final String COL_SEARCHURL = "searchurl";

    SQLiteDatabase mDB;

    public BookmarkDB(Context context) {
        super(context, DBNAME, null, DBVERSION);
        mDB = this.getWritableDatabase();
    }

    @Override
    public void onCreate(SQLiteDatabase db) {

        // The SQL to be used to create the table
        String crt_bookmark_tbl_sql = "CREATE TABLE IF NOT EXISTS " + TBL_BOOKMARK + "(" +
                COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
                COl_NAME + " TEXT, " +
                COl_HIDDEN + " INTEGER, " +
                COL_ICON + " TEXT, " +
                COL_NATIVEURL + " TEXT," +
                COL_SEARCHURL + " TEXT" +
                ")";
        db.execSQL(crt_bookmark_tbl_sql); // CREATE THE TABLE

    }


    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP IF TABLE EXISTS " + DBNAME);
        onCreate(db);
    }

    public long addBookmark(long id, String name, boolean hidden, String icon, String nativeurl, String searchurl) {
        ContentValues cv = new ContentValues();

        cv.put(COl_NAME,name);
        cv.put(COl_HIDDEN,hidden);
        cv.put(COL_ICON,icon);
        cv.put(COL_NATIVEURL,nativeurl);
        cv.put(COL_SEARCHURL,searchurl);
        // uses the convenience insert method that builds the SQL
        return mDB.insert(TBL_BOOKMARK,null,cv);
    }
    public ArrayList<Bookmark> getAllBookmarks() {
        ArrayList<Bookmark> rv  = new ArrayList<>();
        Cursor csr = mDB.query(TBL_BOOKMARK,null,null,null,null,null, null);
        while (csr.moveToNext()) {
            Bookmark b = new Bookmark();
            b.setId(csr.getString(csr.getColumnIndex(COL_ID)));
            b.setName(csr.getString(csr.getColumnIndex(COl_NAME)));
            b.setIcon(csr.getInt(csr.getColumnIndex(COL_ICON))); // Here I set the icon but I want to set icon from the saved SearchUrl.
            b.setViewType(csr.getInt(csr.getColumnIndex(COl_NAME)));
            b.setNativeUrl(csr.getString(csr.getColumnIndex(COL_NATIVEURL)));
            b.setSearchUrl(csr.getString(csr.getColumnIndex(COL_SEARCHURL)));
            rv.add(b);
        }
        return rv;
    }
公共类活动ChangeBookmark扩展了AppCompatActivity{
private ArrayList listItems=new ArrayList();
私人回收站;
按钮保存书签,取消书签;
文本视图名称、url;
图像视图图标,mIcon;
编辑文本mName,mUrl,mID;
公共静态最终字符串Save\u Bookmark=“Save\u Bookmark”;
字符串Url,名称;
整数Id;
我的适配器我的适配器;
BookmarkDB BookmarkDB;
按钮Robotomedium removeBookmark,发送至主屏幕;
ArrayList ArrayList=新的ArrayList();
@凌驾
创建时受保护的void(@Nullable Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u change\u书签);
saveBookmark=findviewbyd(R.id.btnSave);
name=findviewbyd(R.id.tvnamedit);
url=findviewbyd(R.id.tvURLEdit);
recyclerView=findViewById(R.id.myRecyclerView);
icon=findViewById(R.id.ivFavIcon);
mName=findviewbyd(R.id.etnamedit);
mUrl=findviewbyd(R.id.etURLEdit);
sendToHomeScreen=findViewById(R.id.btnAddIconToDeviceScreen);
name.setVisibility(View.GONE);
setVisibility(View.GONE);
bookmarkDB=newbookmarkdb(getApplicationContext());
Intent=getIntent();
myAdapter=新的myAdapter(getApplicationContext(),arrayList);
Bundle extras=intent.getExtras();
如果(附加值!=null){
Url=intent.getExtras().getString(“Url”);
Name=intent.getExtras().getString(“名称”);
Id=intent.getExtras().getInt(“Id”);
位图位图=intent.getExtras().getParcelable(“图像”);
mName.setText(名称);
mUrl.setText(Url);
icon.setImageBitmap(位图);
removeBookmark.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
bookmarkDB.deleteName(Id,Name);
myAdapter.notifyDataSetChanged();
完成();
}
});
}
否则{
removeBookmark.setVisibility(View.GONE);
sendToHomeScreen.setVisibility(View.GONE);
icon.setImageResource(R.drawable.user\u书签);
mName.setText(“”);
mUrl.setText(“”);
}
saveBookmark.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
saveData();
myAdapter.notifyDataSetChanged();
完成();
}
});
公共void saveData(){
随机r=新随机();
int低=14;
int高=100;
int结果=r.nextInt(高-低)+低;
bookmarkDB.addBookmark(结果,mName.getText().toString(),false,“https://www.google.com/s2/favicons?domain=“+mUrl.getText().toString(),mUrl.getText().toString(),”http:/“+mUrl.getText().toString());
}
}
书签数据库类

public class Bookmark {
    String name, id, nativeUrl, searchUrl;
    int icon;
    int viewType;


    public String getName() { return name; }
    public void setName(String name) {
        this.name = name;
    }

    public int getIcon() { return icon; }
    public void setIcon(int icon) {
        this.icon = icon;
    }

    public String getId(){
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getNativeUrl() {
        return nativeUrl;
    }

    public void setNativeUrl(String nativeUrl) {
        this.nativeUrl = nativeUrl;
    }

    public String getSearchUrl() {
        return searchUrl;
    }

    public void setSearchUrl(String searchUrl) {
        this.searchUrl = searchUrl;
    }
    public int getViewType() {
        return viewType;
    }

    public void setViewType(int viewType) {
        this.viewType = viewType;
    }


    @Override
    public String toString() {
        return "Bookmark{" +
                "name='" + name + '\'' +
                ", icon='" + icon + '\'' +
                ", id='" + id + '\'' +
                ", nativeUrl='" + nativeUrl + '\'' +
                ", searchUrl='" + searchUrl + '\'' +
                '}';
    }
}
 public class ActivityChangeBookmark  extends AppCompatActivity {
 private ArrayList<String> listItems = new ArrayList<String>();
 private RecyclerView recyclerView;
 Button saveBookmark, cancelBookmark;
 TextView name, url;
 ImageView icon, mIcon;
 EditText mName, mUrl, mID;
 public static final String Save_Bookmark = "Save_Bookmark";
 String Url, Name;
 Integer Id;
 MyAdapter myAdapter;
 BookmarkDB bookmarkDB;
 ButtonRobotoMedium removeBookmark, sendToHomeScreen;
 ArrayList<Bookmark> arrayList = new ArrayList<>();


@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_change_bookmark);
    saveBookmark = findViewById(R.id.btnSave);
    name = findViewById(R.id.tvNameEdit);
    url = findViewById(R.id.tvURLEdit);
    recyclerView = findViewById(R.id.myRecyclerView);
    icon = findViewById(R.id.ivFavIcon);
    mName = findViewById(R.id.etNameEdit);
    mUrl = findViewById(R.id.etURLEdit);
    sendToHomeScreen = findViewById(R.id.btnAddIconToDeviceScreen);
    name.setVisibility(View.GONE);
    url.setVisibility(View.GONE);
    bookmarkDB = new BookmarkDB(getApplicationContext());
    Intent intent = getIntent();
    myAdapter = new MyAdapter(getApplicationContext(), arrayList);

    Bundle extras = intent.getExtras();
    if (extras != null) {
        Url = intent.getExtras().getString("Url");
        Name = intent.getExtras().getString("Name");
        Id = intent.getExtras().getInt("ID");

        Bitmap bitmap = intent.getExtras().getParcelable("Image");
        mName.setText(Name);
        mUrl.setText(Url);

        icon.setImageBitmap(bitmap);
        removeBookmark.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                bookmarkDB.deleteName(Id, Name);
                myAdapter.notifyDataSetChanged();
                finish();
            }
        });
    }
     else {
        removeBookmark.setVisibility(View.GONE);
        sendToHomeScreen.setVisibility(View.GONE);
        icon.setImageResource(R.drawable.user_bookmark);
        mName.setText("");
        mUrl.setText("");
    }


    saveBookmark.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            saveData();
            myAdapter.notifyDataSetChanged();
            finish();
            }
    });

public void saveData() {
    Random r = new Random();
    int low = 14;
    int high = 100;
    int result = r.nextInt(high-low) + low;
    bookmarkDB.addBookmark(result, mName.getText().toString(), false, "https://www.google.com/s2/favicons?domain=" + mUrl.getText().toString(), mUrl.getText().toString(), "http://" + mUrl.getText().toString());
 }
}
 public class BookmarkDB extends SQLiteOpenHelper {
    public static final String DBNAME = "bookmarks.db"; // The name of the 
 database file
    public static final int DBVERSION = 1;  // The Database version

    public static final String TBL_BOOKMARK = "bookmark";
    public static final String COL_ID = BaseColumns._ID; // equates to _id
    public static final String COl_NAME = "name";
    public static final String COl_HIDDEN = "hidden";
    public static final String COL_ICON = "icon";
    public static final String COL_NATIVEURL = "nativeurl";
    public static final String COL_SEARCHURL = "searchurl";

    SQLiteDatabase mDB;

    public BookmarkDB(Context context) {
        super(context, DBNAME, null, DBVERSION);
        mDB = this.getWritableDatabase();
    }

    @Override
    public void onCreate(SQLiteDatabase db) {

        // The SQL to be used to create the table
        String crt_bookmark_tbl_sql = "CREATE TABLE IF NOT EXISTS " + TBL_BOOKMARK + "(" +
                COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
                COl_NAME + " TEXT, " +
                COl_HIDDEN + " INTEGER, " +
                COL_ICON + " TEXT, " +
                COL_NATIVEURL + " TEXT," +
                COL_SEARCHURL + " TEXT" +
                ")";
        db.execSQL(crt_bookmark_tbl_sql); // CREATE THE TABLE

    }


    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP IF TABLE EXISTS " + DBNAME);
        onCreate(db);
    }

    public long addBookmark(long id, String name, boolean hidden, String icon, String nativeurl, String searchurl) {
        ContentValues cv = new ContentValues();

        cv.put(COl_NAME,name);
        cv.put(COl_HIDDEN,hidden);
        cv.put(COL_ICON,icon);
        cv.put(COL_NATIVEURL,nativeurl);
        cv.put(COL_SEARCHURL,searchurl);
        // uses the convenience insert method that builds the SQL
        return mDB.insert(TBL_BOOKMARK,null,cv);
    }
    public ArrayList<Bookmark> getAllBookmarks() {
        ArrayList<Bookmark> rv  = new ArrayList<>();
        Cursor csr = mDB.query(TBL_BOOKMARK,null,null,null,null,null, null);
        while (csr.moveToNext()) {
            Bookmark b = new Bookmark();
            b.setId(csr.getString(csr.getColumnIndex(COL_ID)));
            b.setName(csr.getString(csr.getColumnIndex(COl_NAME)));
            b.setIcon(csr.getInt(csr.getColumnIndex(COL_ICON))); // Here I set the icon but I want to set icon from the saved SearchUrl.
            b.setViewType(csr.getInt(csr.getColumnIndex(COl_NAME)));
            b.setNativeUrl(csr.getString(csr.getColumnIndex(COL_NATIVEURL)));
            b.setSearchUrl(csr.getString(csr.getColumnIndex(COL_SEARCHURL)));
            rv.add(b);
        }
        return rv;
    }
public类BookmarkDB扩展了SQLiteOpenHelper{
public static final String DBNAME=“bookmarks.db”;//对象的名称
数据库文件
public static final int DBVERSION=1;//数据库版本
公共静态最终字符串TBL_BOOKMARK=“BOOKMARK”;
public static final String COL_ID=BaseColumns.\u ID;//等于_ID
公共静态最终字符串COl_NAME=“NAME”;
公共静态最终字符串COl_HIDDEN=“HIDDEN”;
公共静态最终字符串COL_ICON=“ICON”;
公共静态最终字符串COL_NATIVEURL=“NATIVEURL”;
公共静态最终字符串COL_SEARCHURL=“SEARCHURL”;
sqlitemdb数据库;
公共书签数据库(上下文){
super(上下文,DBNAME,null,DBVERSION);
mDB=this.getWritableDatabase();
}
@凌驾
public void onCreate(SQLiteDatabase db){
//用于创建表的SQL
字符串crt_bookmark_tbl_sql=“如果不存在创建表”+tbl_bookmark+”(“+
列ID+“整数主键自动递增,”+
列名称+文本,“+
COl_HIDDEN+“整数,”+
COL_图标+文本+
COL_NATIVEURL+“文本,”+
COL_SEARCHURL+“文本”+
")";
db.execSQL(crt_bookmark_tbl_sql);//创建表
}
@凌驾
public void onUpgrade(SQLiteDatabase db,int-oldVersion,int-newVersion){
db.execSQL(“如果表存在则删除”+DBNAME);
onCreate(db);
}
public long addBookmark(长id、字符串名称、布尔隐藏、字符串图标、字符串nativeurl、字符串搜索URL){
ContentValues cv=新的ContentValues();
简历(姓名、姓名);
cv.put(COl_隐藏,隐藏);
cv.put(COL_图标,图标);
cv.put(COL_NATIVEURL,NATIVEURL);
cv.put(COL_SEARCHURL,SEARCHURL);
//使用方便的insert方法生成SQL
返回mDB.insert(TBL_书签,null,cv);
}
公共ArrayList getAllBookmarks(){
ArrayList rv=新的ArrayList();
游标csr=mDB.query(TBL_书签,null,null,null,null,null,null