如何从绘制包括图像规格检索图像并将其显示成一个ListView [英] How to retrieve images from drawable including image specs and display it into a ListView

查看:85
本文介绍了如何从绘制包括图像规格检索图像并将其显示成一个ListView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在绘制并具有如价格和imageName列名的数据库中的图像......所以我想找回imageNames的所有名单,并与数据库中的其他领域一起显示在列表视图相应的图像...所以在这里我已经尝试了现在..

  //获取从数据库名称列表

公开名单<字符串> populateList(){
        名单<字符串> ItemsList =新的ArrayList<字符串>();
        DatabaseHelper openHelper =新DatabaseHelper(本);
        SQLiteDatabase sqliteDatabase = openHelper.getReadableDatabase();

        //我们需要一个人来读取数据库查询。光标界面会为我们做
                //(字符串表,字符串[]列,选择字符串,字符串[] selectionArgs两个,GROUPBY字符串,字符串有,字符串排序依据)
                光标光标= sqliteDatabase.query(DBAdapter.ITEMS_TABLE,NULL,NULL,NULL,NULL,NULL,NULL);
                //上面给出的查询,读取表的所有列和字段

                startManagingCursor(光标);

                而(cursor.moveToNext()){
                    //在一个循环中,光标​​读取一张本科所有细节
                    //假设,我们也需要看到每一个本科的所有细节
                    //我们所要做的就是在每个循环中,读取所有的值,它们传递到POJO类
                    //营造大学生的ArrayList的

                    串BNAME = cursor.getString(cursor.getColumnIndex(DBAdapter.COLUMN_BOOK_NAME));
                    串Bauthor = cursor.getString(cursor.getColumnIndex(DBAdapter.COLUMN_BOOK_AUTHOR));
                    串Bgenre = cursor.getString(cursor.getColumnIndex(DBAdapter.COLUMN_BOOK_GENRE));
                    串Bpublisher = cursor.getString(cursor.getColumnIndex(DBAdapter.COLUMN_BOOK_PUBLISHER));
                    串Bcover = cursor.getString(cursor.getColumnIndex(DBAdapter.COLUMN_BOOK_COVER_TYPE));
                    INT Bpages = cursor.getInt(cursor.getColumnIndex(DBAdapter.COLUMN_BOOK_NUM_PAGES));
                    INT八哥= cursor.getInt(cursor.getColumnIndex(DBAdapter.COLUMN_BOOK_AGE_RESTRICTION));
                    INT Bqty = cursor.getInt(cursor.getColumnIndex(DBAdapter.COLUMN_BOOK_QUANTITY));
                    双Bprice = cursor.getDouble(cursor.getColumnIndex(DBAdapter.COLUMN_BOOK_PRICE));
                    串Bimage = cursor.getString(cursor.getColumnIndex(DBAdapter.COLUMN_BOOK_IMAGE));
                    //串uHaddress = cursor.getString(cursor.getColumnIndex(DBAdapter.COLUMN_ADDRESS));
                    //双ugGpa = cursor.getDouble(cursor.getColumnIndex(AndroidOpenDbHelper.COLLUMN_NAME_UNDERGRADUATE_GPA));

                    //完成读取一个原始的,现在我们已经将它们传递给POJO
                    BooksPojo uPojoClass =新BooksPojo(BNAME,Bauthor,Bgenre,Bpublisher,Bcover,Bpages,八哥,Bqty,Bprice,Bimage);


                    //让我们通了POJO我们ArrayList中包含本科生类型
                    pojoArrayList.add(uPojoClass);

                    //但是,我们需要一组字符串来在ListView也显示。
                    //这就是为什么我们创建uGraduateNamesList
                    ItemsList.add(Bimage);
                }

                //如果不关闭数据库,你会得到一个错误
                sqliteDatabase.close();
    返回ItemsList;
    }
 

解决方案

如果您存储在数据库中你绘制的名字你就可以检索使用的ID <一href="http://developer.android.com/reference/android/content/res/Resources.html#getIdentifier%28java.lang.String,%20java.lang.String,%20java.lang.String%29"相对=nofollow>则getIdentifier 则可以通过ID来<一href="http://developer.android.com/reference/android/content/res/Resources.html#getDrawable%28int%29"相对=nofollow> getDrawable ,以获得绘制你的ImageView的使用。

有关获取这些数据到您的ListView,你应该使用 ListAdapater 。 该 SimpleCursorAdapter 可能将是最适合你的需求。

I have images in drawable and a database which has column names such as price and imageName...so I want to retrieve all list of imageNames and display the corresponding image on a listView together with other fields in the database...so here What i have tried for now..

//getting a list of names from database

public List<String> populateList(){
        List<String> ItemsList = new ArrayList<String>();
        DatabaseHelper openHelper = new DatabaseHelper(this);
        SQLiteDatabase sqliteDatabase = openHelper.getReadableDatabase();

        // We need a a guy to read the database query. Cursor interface will do it for us
                //(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy)
                Cursor cursor = sqliteDatabase.query(DBAdapter.ITEMS_TABLE, null, null, null, null, null, null);
                // Above given query, read all the columns and fields of the table

                startManagingCursor(cursor);

                while (cursor.moveToNext()) {
                    // In one loop, cursor read one undergraduate all details
                    // Assume, we also need to see all the details of each and every undergraduate
                    // What we have to do is in each loop, read all the values, pass them to the POJO class
                    //and create a ArrayList of undergraduates

                    String BName = cursor.getString(cursor.getColumnIndex(DBAdapter.COLUMN_BOOK_NAME));
                    String Bauthor = cursor.getString(cursor.getColumnIndex(DBAdapter.COLUMN_BOOK_AUTHOR));
                    String Bgenre = cursor.getString(cursor.getColumnIndex(DBAdapter.COLUMN_BOOK_GENRE));
                    String Bpublisher = cursor.getString(cursor.getColumnIndex(DBAdapter.COLUMN_BOOK_PUBLISHER));
                    String Bcover = cursor.getString(cursor.getColumnIndex(DBAdapter.COLUMN_BOOK_COVER_TYPE));
                    int Bpages = cursor.getInt(cursor.getColumnIndex(DBAdapter.COLUMN_BOOK_NUM_PAGES));
                    int Bage = cursor.getInt(cursor.getColumnIndex(DBAdapter.COLUMN_BOOK_AGE_RESTRICTION));
                    int Bqty = cursor.getInt(cursor.getColumnIndex(DBAdapter.COLUMN_BOOK_QUANTITY));
                    double Bprice = cursor.getDouble(cursor.getColumnIndex(DBAdapter.COLUMN_BOOK_PRICE));
                    String Bimage = cursor.getString(cursor.getColumnIndex(DBAdapter.COLUMN_BOOK_IMAGE));
                    //String uHaddress = cursor.getString(cursor.getColumnIndex(DBAdapter.COLUMN_ADDRESS));
                    //double ugGpa = cursor.getDouble(cursor.getColumnIndex(AndroidOpenDbHelper.COLLUMN_NAME_UNDERGRADUATE_GPA));

                    // Finish reading one raw, now we have to pass them to the POJO
                    BooksPojo uPojoClass = new BooksPojo(BName, Bauthor, Bgenre, Bpublisher, Bcover, Bpages, Bage, Bqty, Bprice, Bimage);


                    // Lets pass that POJO to our ArrayList which contains undergraduates as type
                    pojoArrayList.add(uPojoClass);

                    // But we need a List of String to display in the ListView also.
                    //That is why we create "uGraduateNamesList"
                    ItemsList.add(Bimage);
                }

                // If you don't close the database, you will get an error
                sqliteDatabase.close();
    return ItemsList;
    }

解决方案

If you store the name of your drawable in the database you can then retrieve the ID using getIdentifier you can then pass the ID to getDrawable which will get the drawable to use with your ImageView.

For getting all this data in to your ListView you should use a ListAdapater. The SimpleCursorAdapter would probably be best for your needs.

这篇关于如何从绘制包括图像规格检索图像并将其显示成一个ListView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆