我使用Listview
从Sqlite数据库生成SimpleAdapter
。我想在长按手机上的行时删除该项目。但listview
行在长时间内没有响应任何内容。任何人都可以指导我这件事吗?
我的代码如下:
Lists.java
ListView l=(ListView)findViewById(R.id.listView1);
l.setLongClickable(true);
details=db.getlocationdetails();
if((details=db.getlocationdetails()).size()!=0)
{
ListAdapter k=new SimpleAdapter(Lists.this,details,R.layout.testviewnew,new String[]{"locname","profile"},new int[]{R.id.locationame,R.id.proname});
l.setAdapter(k);
}
l.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
String s=String.valueOf(arg2);
db.deleterow(s);
return true;
}
});
}
这是我的数据库代码:
public void deleterow(String id) {
Log.d(LOGCAT,"delete");
SQLiteDatabase database = this.getWritableDatabase();
String deleteQuery = "DELETE FROM animals where savedlocation='"+ id +"'";
Log.d("query",deleteQuery);
database.execSQL(deleteQuery);
database.close();
}
这是我的xml文件
activity_lists.xml
<ListView
android:id="@+id/listView1"
android:layout_width="fill_parent"
android:layout_height="250dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:longClickable="true"
android:layout_below="@+id/relativeLayout1" >
</ListView>
testviewnew.xml
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/ishutup_pointer"
/>
<TextView
android:id="@+id/locationame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="31dp"
android:layout_toRightOf="@+id/imageButton1"
android:text="TextView"
android:textStyle="bold"
android:textSize="15dp"
android:textColor="@color/white"/>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/imageButton1"
android:layout_alignLeft="@+id/locationame"
android:textStyle="bold"
android:textSize="15dp"
android:textColor="@color/white"
android:text="Profile" />
<TextView
android:id="@+id/proname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView2"
android:layout_alignBottom="@+id/textView2"
android:layout_marginLeft="30dp"
android:layout_toRightOf="@+id/textView2"
android:textStyle="bold"
android:textSize="15dp"
android:textColor="@color/white"
android:text="TextView" />
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:textStyle="bold"
android:textSize="15dp"
android:textColor="@color/white"
android:src="@drawable/ishutup_edit" />
答案 0 :(得分:4)
你的xml中有两个imageButton但你没有任何监听器,所以你可以用imageView改变它。所以你的代码必须是:
<ImageView
android:id="@+id/imageButton1"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/ishutup_pointer"
/>
<TextView
android:id="@+id/locationame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="31dp"
android:layout_toRightOf="@+id/imageButton1"
android:text="TextView"
android:textStyle="bold"
android:textSize="15dp"
android:textColor="@color/white"/>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/imageButton1"
android:layout_alignLeft="@+id/locationame"
android:textStyle="bold"
android:textSize="15dp"
android:textColor="@color/white"
android:text="Profile" />
<TextView
android:id="@+id/proname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView2"
android:layout_alignBottom="@+id/textView2"
android:layout_marginLeft="30dp"
android:layout_toRightOf="@+id/textView2"
android:textStyle="bold"
android:textSize="15dp"
android:textColor="@color/white"
android:text="TextView" />
<ImageView
android:id="@+id/imageButton2"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:textStyle="bold"
android:textSize="15dp"
android:textColor="@color/white"
android:src="@drawable/ishutup_edit" />
因为imageButton
想要点击默认点击,如果您不想更改代码,可以在android:descendantFocusability="blocksDescendants"
上添加testviewnew
,就像我在评论中说的那样删除那些