如何在sqlite中检索后启用删除记录?

时间:2012-03-09 08:43:57

标签: android database sqlite

我使用以下代码从数据库中获取记录。

 for (LocWiseProfileBeans cn : LocWiseProfile) {
        // get a reference for the TableLayout
        TableLayout table = (TableLayout) findViewById(R.id.locprofile_table);

        // create a new TableRow
        TableRow row = new TableRow(this);

        // count the counter up by one
        counter++;


        String log = "Loc Name: "+cn.getLocname()+" ,Lattitude: " + cn.getLattitude()+ " ,Longitude: " + cn.getLongitude()+ " , Selected Profile :"+cn.getSelectedprofile();
        TextView t = new TextView(this);
        // set the text to "text xx"
        t.setText(cn.getLocname());

        TextView t2 = new TextView(this);
        t2.setText(cn.getSelectedprofile());
        row.addView(t);
        row.addView(t2);
        table.addView(row,new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

但我需要启用此记录以便在用户请求时删除 表示如果用户点击第二条记录,则该记录将被删除 我试着找到答案,但找不到合适的答案.......
请提供参考代码或文章 提前谢谢!

2 个答案:

答案 0 :(得分:2)

您可以通过将onClickListener设置为您的行来执行此操作。 要确定单击哪一行,您可以为该行设置唯一标记。

row.setTag(counter);  //  use counter or index for tag, so you can get the data from LocWiseProfile later
row.setOnClickListener(new OnClickListener()  {
    @Override
    public void onClick(View v)  {
        int tag = (Integer)view.getTag();
        LocWiseProfileBeans cn = LocWiseProfile.get(tag);
        //  Perform delete action here
        //  ...
    }   
});

如果您只想将db的结果显示为列表,我建议您使用ListActivity或ListView,使用适配器可以更简单的方式显示和管理数据。

答案 1 :(得分:1)

    //decleration 
EventDataSQLHelper eventsData; //Class where table is created
SQLiteDatabase dbx,rdbx;

//onCreate
eventsData = new EventDataSQLHelper(this);
rdbx= eventsData.getReadableDatabase();
        dbx=eventsData.getWritableDatabase();
btn1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
//specify the id of the record to be deleted
            dbx.delete("tablename", "id=" ?, null); 
            }
        });