0

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

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

请参阅此链接以了解我在说什么,因为我不擅长用英语表达自己。

截屏

我已经找到了一种方法来显示保存在数据库中的所有数据,但是我真的不知道如何在数据旁边自动放置一个删除按钮并通过单击它来删除它。

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

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;

                        }
            }  
}
4

1 回答 1

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 的详细信息:如何将多个触摸操作附加到单个列表项?,“快速而肮脏”的答案应该对您有所帮助。您还应该观看 Google I/O 演示Turbo-Charge Your UI以充分利用您的适配器。

于 2013-04-18T16:26:30.503 回答