Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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
从数据库中删除项目-列表视图-Android_Android_Database_Listview - Fatal编程技术网

从数据库中删除项目-列表视图-Android

从数据库中删除项目-列表视图-Android,android,database,listview,Android,Database,Listview,如何实现此代码的onClick侦听器来删除选定的数据库行。我对Android不太了解,所以对我来说这是一个学习曲线。列表视图。onListItemClick,因为第三个参数有位置Position是由Adpater.getItem(int)返回的条目。因此,当您单击列表视图中的一行时,将触发列表视图.onListItemClick。在那里,您可以检索适配器条目,并使用从数据库中删除该条目所需的信息 public class DataViewActivity extends Activity{ SQ

如何实现此代码的onClick侦听器来删除选定的数据库行。我对Android不太了解,所以对我来说这是一个学习曲线。

列表视图。onListItemClick
,因为第三个参数有
位置
Position
是由
Adpater.getItem(int)
返回的条目。因此,当您单击
列表视图
中的一行时,将触发
列表视图.onListItemClick
。在那里,您可以检索适配器条目,并使用从数据库中删除该条目所需的信息

public class DataViewActivity extends Activity{
SQLiteDatabase db;
SimpleCursorAdapter adapter;
String dbTable = "users";

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview_layout);
ListView listView = (ListView) findViewById(R.id.dbPop);

DBHelper dbhelper = new DBHelper(DataViewActivity.this);
db = dbhelper.getWritableDatabase();

Cursor cursor = db.query(dbTable, null, null, null, null, null, null);
startManagingCursor(cursor);

String[] from = new String[] { "name","_id"};
int[] to = new int[] { android.R.id.text1 };
adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, cursor, from,
        to);

    listView.setAdapter(adapter);
  }
}

setOnItemClickListener
设置为您的listview

public void onListItemClick(ListView parent, View v, int position, long id) {
      // do something with the cursor
}
listview.setOnItemClickListener(新的OnItemClickListener(){
公共链接(AdapterView arg0,视图v,内部位置,长id){
//TODO自动生成的方法存根
{
TextView电视=(TextView)v;
字符串s1=tv.getText().toString();
//删除行
String delgrp=“从(表名)中删除,其中(行)='”+s1+“'”;
execSQL(delgrp);
}

我有一个小问题。如何将
id
存储在Db中以使您的解决方案工作?我应该将
整型主键
整型主键自动递增
整型主键自动递增非空
?整型主键自动递增谢谢您的回答,在询问您之后,我在sqlite中阅读了文档说明autoincrement会降低数据库的速度,无论您是编写
整型主键
还是
整型主键autoincrement
,都没有任何区别。您的问题对我帮助很大……:)
listview.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {

            database.remove(id);//create removemethod in database class

        }
    });
    public void remove(long id){
        String string =String.valueOf(id);
        database.execSQL("DELETE FROM favorite WHERE _id = '" + string + "'");
    }
    listview.setOnItemClickListener(new OnItemClickListener(){

    public void onItemClick(AdapterView<?> arg0, View v, int pos,long id) {
            // TODO Auto-generated method stub
      {
             TextView tv=(TextView)v;
     String s1=tv.getText().toString();
            //delete row
            String delgrp="DELETE FROM (tablename) WHERE  (row)='"+s1+"'";
    sdb.execSQL(delgrp);
      }