好的,所以我的主管要我这样做:
请参阅此链接,了解我所说的内容,因为我不善于用英语表达自己。
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;
}
}
}
答案 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,以充分利用您的适配器。