首页 > 其他分享 >4.24

4.24

时间:2024-04-25 17:45:42浏览次数:25  
标签:image cursor new import android 4.24 id

已经往数据库插入图片了,现在可以去除图片了,这里我用的是游标

package 你的包名;

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import com.example.garden.database.Mydb;

public class SearchResult extends AppCompatActivity implements AdapterView.OnItemClickListener {

//定义游标
private Cursor cursor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search_result);

Intent rit = getIntent();
String text = rit.getStringExtra("key");

ListView listview=findViewById(R.id.listview);

//帮助器和管理器两个老朋友了,实例化数据库对象
SQLiteOpenHelper helper=new Mydb(this);
SQLiteDatabase db=helper.getWritableDatabase();

//游标读取数据库
cursor=db.rawQuery("select * from KNOW where name like '%"+text+"%'",null);
cursor.moveToFirst();

//数据库的简单游标适配器,简单来说就是往模板填充内容的一个桥梁
SimpleCursorAdapter mAdapter=new SimpleCursorAdapter(this,R.layout.item_list,
cursor,new String[]{"NAME","image","TITLE"},new int[]{R.id.iv1,R.id.iv2,R.id.iv3},0);//自己的xml组件名R.id.iv1,R.id.iv2,R.id.iv3与数据库字段名"NAME","image","TITLE"对应,更多用法自己查

//仅仅是上面的简单游标适配器是不能读取图片的,重点来了,此处用到了ViewBinder
SimpleCursorAdapter.ViewBinder binder=new SimpleCursorAdapter.ViewBinder() {
@Override
public boolean setViewValue(View view, Cursor cursor, int columnIndex) {

//判断是否是ImageView,这个判断非常关键,详细可以按ctr去查找ViewBinder,就去文档看,不要找其他资料,如果想真的搞懂一定要看!
if (view instanceof ImageView) {
ImageView imageView = (ImageView) view;

imageView.setImageBitmap(readImageFromDb(cursor.getString(cursor.getColumnIndex("_id"))));//为imageView配置id所对应的图片
return true;
}
return false;
}
};

//配置ViewBinder
mAdapter.setViewBinder(binder);
//配置适配器
listview.setAdapter(mAdapter);
//点击监听器
listview.setOnItemClickListener(this);

}

//
@SuppressLint("Range")
private Bitmap readImage(String id) {

//至于为什么又要实例化,是因为sqlite不能同时使用,术语不专业,总之要重新实例化,不然会报错
Mysql mySqlLite2 = new Mysql(this);
SQLiteDatabase database2 = mySqlLite2.getReadableDatabase();

Bitmap image= null;
byte[] bytes;
Cursor cursor = database2.rawQuery( "SELECT * FROM INFORMATION WHERE _id = ?", new String[]{id});
if (cursor.moveToFirst()) {
if ((bytes = cursor.getBlob(cursor.getColumnIndex("image"))) != null) {
image= BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
}
}
cursor.close();
return image;
}


//listview的点击事件
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//此处写点击事件,我用来传值以及跳转页面
Intent it=new Intent(this, Show.class);
it.putExtra("ID",(int)id-1);
startActivity(it);
finish();
}
}

标签:image,cursor,new,import,android,4.24,id
From: https://www.cnblogs.com/liyize/p/18158249

相关文章

  • 4.24
    今天完成了快递代取部分的全部接口文档,因为快递和购餐方面类似,所以做完一个其实就是全部做完了,对于数据库表中设计餐食保存的元素为json格式我想了想可以在前端中优化成一个字符串,这样既可以省时间也可以避免不必要的错误,这方面我需要跟我的前端逻辑实现的队友商量一下,商量下是否......
  • 2024.04.24 完成的任务
    今天在菜鸟教程学了这些内容。。。具体内容如下:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>我的联通</title><head></head></head><body><......
  • 4.24
    今天Miqa闲来无事对教授说:“你是原。”教授说:“我不是原。”经过了很长时间的激烈的辩论之后事情发展到了这样:Miqa:“你不能证明你不是原,所以你是原。”教授:“你也不能证明,你也是原。”Miqa沉思片刻Miqa:“我能证明我不是原。”证明过程:由基本事实得,咱俩当中有且仅有一......
  • 2015.4.24.17.36_pencil_2015.4.24_Pencil教程=自定义组件安装_0.01
    在前面《原型工具Pencil使用介绍》中有说到Pencil支持自定义组件安装,也简易的介绍了安装使用方法,这里再详细的介绍一下如何安装自定义组件。在最新版本的Pencil1.3中,自带的组件库是比较少的,只有三个,但在Pencil1.2版本中自带的组件库有七个,而且1.3个人感觉只是界面布局上的更新,操......
  • 2015.4.24.17.23_界面_2015.4.24__Android界面设计工具_0.01
    iOS,Android原型图设计软件–>AxureRP,UIDesigner,Pencil,iPhoneMockup,Justinmind<–#AxureRPAxureRP-快速原型制作软件–线框图,原型,规格文档,由美国AxureSoftwareSolutions,Inc.公司开发。AxureRP也分商业版和免费版,英文官方:http://www.axure.com/download中文网站:h......
  • 23.4.24前学习笔记
    可通过document.documentElement.scrollTop=0控制返回页面顶部 scrollTo方法 window.scrollTo(x,y)//控制页面移动到哪  页面尺寸事件 window.addEventListener('resize',function(){    //改变屏幕尺寸时发生变化,可代替媒体查询    letw=documen......
  • 上周热点回顾(4.24-4.30)
    热点随笔:· 服务器出现了一个新软件,一帮大佬吵起来了! (轩辕之风)· 【故障公告】被放出的Bing爬虫,又被爬宕机的园子 (博客园团队)· [MAUI]模仿网易云音乐黑胶唱片的交互实现 (林晓lx)· VueHub:我用ChatGPT开发的第一个项目,送给所有Vue爱好者 (DOM哥)· .NETWeb......
  • 4.24每日总结
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"&g......
  • 山东省集 2023.4.24 HeRen 场 T2
    简要题意数轴上有\(n\)个点,给定其坐标\(x_i\)。给定\(d\),你可以将任意多个点的坐标增加\(2d\)。给定\(a,b\),接下来你可以放置若干个区间在数轴上,设某个区间\([l,r]\),其代价是\(a+b(r-l)\)。所有点都要被你放置的区间覆盖,求最小代价。数据范围:\(1\len,d,x_i\le......
  • 4.24
    这里需要设计一个捐款人类Donator及一个相关函数getMaxName(),Donator类中包含捐款人的姓名及其捐款额,其部分代码如下:classDonator{private:stringname;//捐款人姓名floatmoney;//捐款金额,单位:元public:voidsetName(string_......