【发布时间】:2011-03-13 20:57:11
【问题描述】:
我有一个列表,这个列表基本上是滚动视图中的 TableRows,我用布局充气器充气,即它取决于在运行时添加了多少行。现在我在每一行都附加了一个按钮。此按钮是删除按钮或编辑按钮。在编程之前,我在想我将只获取行 ID 并为该行 ID 调用我的删除函数。但是现在当我编程时,我发现我找不到获取行 id 的方法,因为按钮始终是同一个按钮,并且按钮将如何知道它与哪一行链接。我基本上是在做数据库编程,我接受了大量的用户输入并将其显示在滚动视图内的表格行中。但我不知道如何获得这些行。到目前为止,我没有使用任何数组列表或数组适配器。我是否需要使用它们来解决我的这个问题?
请帮忙。
我在这里输入我的代码
if(dbExists)
{
myName = (TextView)findViewById(R.id.myName);
db.open();
Cursor c = db.getAllTitles();
long NoOfRows = c.getCount(); //here I am gettin 30 as entered in database
while(NoOfRows >= 1)
{
c.moveToFirst();
//.........Inflate here name and number........
LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View inflated = inflater.inflate(R.layout.name, myTableLayout);
TextView userName = (TextView)findViewById(R.id.myName);
userName.setText(c.getString(1));//here I am settng the user entered name
Button delButton = (Button)rowView.findViewById(R.id.Delete_Name);
delButton.setTag(RowId--);
delButton.setOnClickListener(this);
c.moveToNext();
NoOfRows--;
}
db.close();
}
@Override
public void onClick(View v) {
Long rowId = (Long)v.getTag();
if (rowId != null)
{
Toast.makeText(this, "rows get Tag() " + rowId, Toast.LENGTH_LONG).show();
//db.deleteTitle(rowId);
}
}
【问题讨论】:
-
一旦你得到这个工作,你可能应该考虑使用一个列表视图,它可以自动处理你的光标。