我是
android的新手,我在从服务器显示来自sqlite的名称时遇到问题
即:
我只在sqlite数据库(列名图像)中存储图像名称(文本),我想根据图像想要在imageview中显示的sqlite图像名称从服务器加载图像
在服务器中,我在该文件夹中创建一个像Cars这样的文件夹,我用汽车名称存储图像..但是在sqlite中我只是添加了一个带有.jpeg文本格式的carname
我的数据库中有两个列名:
>首先是汽车名称
>第二是汽车细节
当用户选择汽车名称时,在下一个活动中,用户可以看到带有图像的汽车详细信息.
这里我显示详细信息,但我不知道如何从服务器显示汽车图像
谢谢
这是我的代码:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.detail_activity); detailtext= (TextView) findViewById(R.id.detail); imageView= (ImageView) findViewById(R.id.images); Intent intent= getIntent(); final String selectedData = intent.getStringExtra("selectedItem"); actionBar.setTitle(selectedData); dbHelper = new sqlLiteDbHelper(this); try { dbHelper.openDataBase(); } catch (sqlException e) { e.printstacktrace(); } sqliteDatabase = dbHelper.getReadableDatabase(); cursor=dbHelper.getdetails(sqliteDatabase,selectedData); if (cursor.movetoFirst()) { detailtext.setText(cursor.getString(0)); String imagename = cursor.getString(1); String imageUrl = "http://your_server/car/" + imagename ; Picasso.with(this).load(imageUrl).into(imageView ); }
注意:Image Field是第4列http://i.stack.imgur.com/lqvOQ.png
在服务器中我将图像放在www.server.com/cars/carnames.jpg中
在sqlite中我只用.jpg ex:carnames.jpg粘贴图像名称
sqliteDbHelper
public Cursor getdetails(sqliteDatabase db,String img) { db=this.getReadableDatabase(); Cursor cursor; cursor=db.query("record",new String[]{DETAIL,IMAGES,ITEMNO + " as _id"},SUBCATEGORY + "='" +img+"'",null,null); return cursor; }
解决方法
如果你想从sqlite加载图像,那么我建议你保存文件/文件位置,如果数据存储在本地,为了在所有图像视图上显示单个图像,因为你只是加载一个图像,你可能想要将所有id放入数组并将其传递给db,db查询还应该返回一个图像位置的数组/ arraylist,您应该使用for循环加载到图像视图中,例如我有一个加载一堆的查询来自我的sqlite数据库的图像显示了一个名为shoes的特定类别的子类别图像,因此我们有智能鞋,休闲鞋以及更多的图像我传递一个Id作为参数
public ArrayList<CategoryItem> getAllSubCategories(int mtargetID) throws sqlException{ ArrayList<CategoryItem> myshoes = new ArrayList<>(); // Select All Query String sQuery = " SELECT "+Constant.CATEGORY_TB_ID+","+Constant.SUB_DESCRIPTION+ ","+Constant.SUB_IMAGEPATH+" FROM "+Constant.CATEGORY_TABLE+ " INNER JOIN "+Constant.SUB_CATEGORY_TABLE+" ON "+Constant.CATEGORY_TB_ID +" = " +Constant.SUB_CATEGORY_FK + " WHERE "+Constant.CATEGORY_TB_ID +" = ?"; String[] args = new String[1]; args[0] = String.valueOf(mtargetID); sqliteDatabase db = this.getWritableDatabase(); Cursor cursor = db.rawQuery(sQuery,args); // looping through all rows and adding to list if (cursor.movetoFirst()) { do { CategoryItem myShoesItem = new CategoryItem(); //my shoe image path on external storage myShoeItem.setmCategoryImgPath(cursor.getString(2)); //i add my image paths to my array list myshoes.add(myShoeItem); } while (cursor.movetoNext()); } // return my arraylist for display into my imageview return mshoes; }
在接收方,然后我横穿我的araylist
for(int i = 0; i <getAllSubCategories.size(); i++ ) { imageView.setimageUri(getAllSubCategories.get(i).getmCategoryImgPath()) }
使用此方法,您可以将图像设置为所有图像视图.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。