存储返回的Sqlite查询的适当方法是什么

时间:2013-07-12 11:36:48

标签: java android sqlite

根据下面的表创建来存储返回查询的更好方法是什么?+

  

String CREATE_ITEMS =“CREATE TABLE”+ TABLE_ITEMS +“(”+ KEY_ID                     +“TEXT”,+ KEY_NAME +“TEXT”,+ KEY_PRICE +“TEXT”,+ KEY_ITEM_ID +“TEXT”                     + KEY_IMAGE_PATH +“NVARCHAR(1000)”+“)”;

我之所以需要来自TABLE_ITEMS的记录,是因为我需要在使用KEY_IMAGE_PATH显示图像的GridView方法中显示它。但我的主要问题是如何存储每列的所有记录,以便我可以跟踪网格视图中显示的每个项目的价格和image_path是什么?

public String[] getImagePath(){     
    List<String> paths = new ArrayList<String>();
    String selectQuery = "SELECT "+ KEY_IMAGE_PATH +" FROM " + TABLE_ITEMS;
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);
    // looping through all rows and adding to list
    if (cursor.moveToFirst()) {
        do {

            paths.add(cursor.getString(0).toString());
            Log.d("getPathImage:", cursor.getString(0).toString());
        } while (cursor.moveToNext());
    }

    db.close();
         //This should be returned as array string
     return paths.toArray(new String[paths.size()]);
}

应该是,

-itemid
-sellingPrice
-keyid
-imagePath[position]
-keyname

LoadMainMenuActivty

paths =  db.getImagePath();
intent.putExtra(Extra.IMAGES, paths);

ImageGridActivity

Bundle bundle = getIntent().getExtras();
imageUrls = bundle.getStringArray(Extra.IMAGES);

 //The images in only displayed but not the other details.
 public View getView(final int position, View convertView, ViewGroup parent) {
                View view = convertView;
                final ViewHolder holder;
                if (convertView == null) {
                    view = getLayoutInflater().inflate(R.layout.item_grid_image, parent, false);
                    holder = new ViewHolder();
                    holder.text = (TextView) view.findViewById(R.id.text1);
                    holder.image = (ImageView) view.findViewById(R.id.imageView1);
                    holder.br = (RatingBar) view.findViewById(R.id.rBarHere);
                    holder.br.setIsIndicator(true);
                    holder.br.setFocusable(false);
                    holder.br.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {

                        @Override
                        public void onRatingChanged(RatingBar ratingBar, float rating,
                                boolean fromUser) {
                            //Toast.makeText(getBaseContext(), "Rating:"+rating, Toast.LENGTH_SHORT).show();

                        }});
                    view.setTag(holder);
                } else {
                    holder = (ViewHolder) view.getTag();
                }

                holder.text.setText("NAAA NA");
                holder.br.setStepSize(1);
                holder.br.setFocusable(false);

                Log.d("Image Path Value in GridView: ", imageUrls[position].toString());

                imageLoader.displayImage(imageUrls[position], holder.image, options);

                return view;
            }

1 个答案:

答案 0 :(得分:0)

返回的查询应该是一个String数组,所以我使用下面的代码来计算它。

从数据库处理程序我必须返回List<Menu> getItemsAsArray(String Table_Name),然后

我必须将它放在循环中以访问返回的列表并将其放入mashmap中。

然后存储它,ArrayList<HashMap<String, ?>> values2

然后最后我必须通过values2.get(position).get(TAG).toString()

访问它