我在表格中获取数据。但是我需要在用户点击记录或行时删除它
当我点击2号位置记录时,删除3重新记录..但我需要删除
记录用户单击的位置。请给我一些提示或教程。
谢谢..
这是我的示例代码。
public class MyTable extends Activity {
int counter=0;
MySQLiteHelper m=new MySQLiteHelper(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.locprofile);
// Reading all contacts
final MySQLiteHelper m=new MySQLiteHelper(getBaseContext());
final List<LocWiseProfileBeans> LocWiseProfile= m.getAllLocWiseProfile();
for (final 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()+"id:"+cn.getId();
TextView t = new TextView(this);
//final int Id=cn.Id;
// set the text to "text xx"
t.setText(cn.getLocname());
TextView t2 = new TextView(this);
t2.setText(cn.getSelectedprofile());
row.setTag(counter); // use counter or index for tag, so you can get the data from LocWiseProfile later
row.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
try{
int tag = (Integer)v.getTag();
LocWiseProfileBeans cn = LocWiseProfile.get(tag);
int value=cn.getId();
m.delete(value);
deleteMessage();
}catch(Exception e){}
/*LocWiseProfileBeans lc=new LocWiseProfileBeans();
int tag=(Integer)lc.getId();
LocWiseProfileBeans value=LocWiseProfile.get(tag);
//if(value.Id);
m.delete(value.Id);
deleteMessage();*/
}
});
答案 0 :(得分:2)
因为您在设置为行上的标记之前递增counter
变量。
所以你在第1行有一个位置1,这可能是删除错误行的原因。
答案 1 :(得分:1)
你可以把这一行放在最后。
table.removeView(v);
答案 2 :(得分:1)
不是在onCreate()中动态编写创建TableLayout的代码,而是创建一个单独的方法并从onCreate()调用它...
在该方法中,第一行将是: TableLayout table =(TableLayout)findViewById(R.id.locprofile_table);
在for循环之外写上面的行。第二行将是:
table.removeAllViews();
所以当你删除任何一行时,只需再次调用你被取消的方法,就像在onCreate()中一样......