I am generating a Listview
from a Sqlite database using a SimpleAdapter
. I want to delete the item on long pressing the row on the phone. But the listview
row is not responding to anything on long pressing. Can anyone guide me in this matter?
My codes are as follows:
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;
}
});
}
And this is my database code:
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();
}
And here are my xml files
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" />
you have two imageButton in your xml but you don't have any listener on those, so you can change that with imageView. so your code must be:
<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" />
as your imageButton
want to listen click as default, if you want don't change your code you can add android:descendantFocusability="blocksDescendants"
on parrent of testviewnew
like as i said on comment to remove listening on those