单击“删除”按钮,使用listview从SQLite中删除数据

时间:2013-04-18 16:14:14

标签: android sqlite android-sqlite

好的,所以我的主管要我这样做:

  • 第三个屏幕应该可以通过"查看全部"按钮。它应显示已添加的所有记录。然后在每个名称旁边,应该有一个删除按钮,用于从SQLite数据库中删除记录。

请参阅此链接,了解我所说的内容,因为我不善于用英语表达自己。

screen shot http://i50.tinypic.com/dm9zqg.jpg

我已经设法显示数据库中保存的所有数据,但我真的不知道如何在数据旁边自动放置删除按钮并通过单击将其删除。

这是我的代码:(如果您可以建议更简单的代码,那么我会更高兴。)

public class CheckData extends ListActivity implements OnClickListener  {     
    TextView selection;
    public int idToModify; 
    DataManipulator dm;

    List<String[]> list = new ArrayList<String[]>();
    List<String[]> names2 =null ;
    String[] stg1;
    protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.check);
    dm = new DataManipulator(this);
    names2 = dm.selectAll();
    stg1=new String[names2.size()]; 
    int x=0;
    String stg;
    for (String[] name : names2) {
        stg = name[1];
        stg1[x]=stg;
        x++;
//ONCLICK
        View homeonviewall = findViewById(R.id.homeonviewall);
        homeonviewall.setOnClickListener(this);
        View newdataonviewall = findViewById(R.id.newdataonviewall);
        newdataonviewall.setOnClickListener(this);     

    }
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,stg1);
        this.setListAdapter(adapter);
    selection=(TextView)findViewById(R.id.selection);
   }      
@Override
    public void onClick(View v) {
                // TODO Auto-generated method stub
        switch(v.getId()){
            case R.id.homeonviewall:
                    Intent a = new Intent(this, Dbsample.class);  
                    startActivity(a);
                    break;
                    case R.id.newdataonviewall:
                    Intent b = new Intent(this, SaveData.class);  
                    startActivity(b);
                    break;

                        }
            }  
}

1 个答案:

答案 0 :(得分:1)

1)制作布局以显示名称和删除按钮。将布局传递给您当前使用android.R.layout.simple_list_item_1的适配器,例如

new ArrayAdapter<String>(this, R.layout.row_layout_delete, stg1);

2)扩展您的适配器并覆盖getView()以向您的按钮添加OnClickListener。在onClick()内只删除当前行。

我建议使用CursorAdapter,如SimpleCursorAdapter,它们专门用于将数据库信息链接到ListView。


这个答案涵盖了一个额外的主题,但我提供了有关如何扩展适配器和实现OnClickListener的详细信息:How to attach multiple touch actions to a single list item?,“快速和肮脏”的答案可以帮助您。您还应该观看Google I / O演示文稿Turbo-Charge Your UI,以充分利用您的适配器。