Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为ListView的每个项目创建onClickListener_Java_Android_Listview_Onitemclicklistener - Fatal编程技术网

Java 如何为ListView的每个项目创建onClickListener

Java 如何为ListView的每个项目创建onClickListener,java,android,listview,onitemclicklistener,Java,Android,Listview,Onitemclicklistener,我正在尝试为列表视图的每个项目设置OnClickListener,以更新或删除SQLite数据库中的每个项目 列表项布局 模型类,为了简单起见,我没有粘贴getter和setter 公共类Coche{ int-id; 纵向浮动; 浮动纬度; 位图foto; 字符串名称; 公共Coche(位图foto,字符串名称){ this.foto=foto; this.nombre=nombre; } 公共Coche(int-id、float-longitud、float-latitud、位图foto、

我正在尝试为
列表视图的每个项目设置
OnClickListener
,以更新或删除SQLite数据库中的每个项目

列表项布局


模型类,为了简单起见,我没有粘贴getter和setter

公共类Coche{
int-id;
纵向浮动;
浮动纬度;
位图foto;
字符串名称;
公共Coche(位图foto,字符串名称){
this.foto=foto;
this.nombre=nombre;
}
公共Coche(int-id、float-longitud、float-latitud、位图foto、字符串nombre){
this.id=id;
this.longitud=longitud;
this.latitud=latitud;
this.foto=foto;
this.nombre=nombre;
}
这是我的适配器类


公共类miAdapter扩展了BaseAdapter{
私人语境;
专用int布局;
私人Arraylista;
公共miAdapter(上下文、int布局、ArrayList lista){
this.context=上下文;
this.layout=布局;
this.lista=lista;
}
@凌驾
public int getCount(){
返回lista.size();
}
@凌驾
公共对象getItem(int位置){
返回lista.get(位置);
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
私有类视窗持有者{
图像视图图像视图;
文本视图名称;
}
@凌驾
公共视图getView(内部位置、视图视图、视图组父视图){
视图fila=视图;
ViewHolder=新的ViewHolder();
if(fila==null)
{
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
fila=充气机充气(布局,空);
holder.imageView=fila.findviewbyd(R.id.imagencoche);
holder.nom=fila.findViewById(R.id.nombreCoche);
fila.setTag(支架);
}
否则{
holder=(ViewHolder)fila.getTag();
}
Coche Coche=lista.get(位置);
holder.nom.setText(coche.getNombre());
holder.imageView.setImageBitmap(coche.getFoto());
返回fila;
}
}
显示
列表视图的活动


公共类ToDosOsoches扩展了AppCompative活动{
ArrayList lista;
列表视图列表视图;
miAdapter适配器=空;
图像视图图像视图图标;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u todos\u los\u coches);
//setListAdapter(新的miAdapter(this,lista));
listview=findViewById(R.id.list);
MyOpenHelper db=新的MyOpenHelper(此);
lista=db.selectCoches();
adapter=新的miadapter(this,R.layout.itemcoche,lista);
setAdapter(适配器);
adapter.notifyDataSetChanged();
}
}
listview的活动的xml


这是SQLite助手类

公共类MyOpenHelper扩展了SQLiteOpenHelper{
公共静态最终int数据库_VERSION=1;
公共静态最终字符串数据库\u NAME=“buscaoches.db”;
public static final String CREAR_TUSU=“CREATE TABLE usuarios(_idinteger主键自动递增,nombre TEXT,pwd TEXT)”;
public static final String CREAR_TCOCHE=“创建表coches(_idinteger主键自动递增,nombre TEXT,longitud REAL,latitud REAL,foto BLOB)”;
公共miadapter适配器;
公共MyOpenHelper(上下文){
super(上下文、数据库名称、null、数据库版本);
}
@凌驾
public void onCreate(SQLiteDatabase db){
数据库execSQL(CREAR_TUSU);
db.execSQL(CREAR\u TCOCHE);
}
@凌驾
public void onUpgrade(SQLiteDatabase db,int-oldVersion,int-newVersion){
}
//我想,我们应该选择一个单独的家庭
公共Usuario getUsu()
{
Usuario usu=null;
SQLiteDatabase db=this.getReadableDatabase();
游标c=db.rawQuery(“选择nombre,pwd,_idfrom usuarios”,null);
if(c.moveToFirst()){
//雷科杰莫斯·瓦洛雷斯
String nom=c.getString(0);
int pwd=c.getInt(1);
int id=c.getInt(2);
//移交者
usu=新的Usuario(id、nom、pwd);
}
c、 close();
db.close();
返回usu;
}
公共布尔hayCoches()
{
SQLiteDatabase db=this.getWritableDatabase();
游标c=db.rawQuery(“从coches中选择nombre”,null);
如果(c.getCount()>0)
{
c、 close();
返回true;
}
c、 close();
返回false;
}
公共无效setUsu(Usuario u)
{
SQLiteDatabase db=this.getWritableDatabase();
ContentValues cv=新的ContentValues();
cv.put(“nombre”,u.getNombre());
cv.put(“pwd”,u.getPwd());
db.插入(“通常”,空,cv);
db.close();
}
公共阵列列表selectCoches(){
ArrayList lista=新的ArrayList();
SQLiteDatabase db=this.getReadableDatabase();
游标c=db.rawQuery(“选择nombre、foto、longitud、latitud、_idfrom coches”,null);
if(c.moveToFirst()){
做{
//雷科杰莫斯·瓦洛雷斯
String nom=c.getString(0);
字节[]foto=c.getBlob(1);
float longitud=c.getFloat(2);
float latitud=c.getFloat(3);
int id=c.getInt(4);
Coche Coche=new Coche(id,longitud,latitud,DbBitMapUtility.getImage(foto),nom);
添加(coche);
}而(c.moveToNext());
}
返回
holder.nom.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // do something
        }
    });
 yourListView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position,long id) {
                // here you can do what you want based on the position or id
            }
        });
 holder.borrar.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    MyOpenHelper db=new MyOpenHelper(context);
                    db.borrarCoche(position+"");
                    notifyDataSetChanged();

                }
            });