我使用以下代码从数据库中获取记录。
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));
但我需要启用此记录以便在用户请求时删除
表示如果用户点击第二条记录,则该记录将被删除
我试着找到答案,但找不到合适的答案.......
请提供参考代码或文章
提前谢谢!
答案 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);
}
});