Android 使用按钮从sqlite数据库中删除可扩展列表视图
我有一个可扩展的列表视图,它有一个删除按钮,可以先从适配器中删除,然后再从数据库中删除。代码在模拟器上运行良好问题是,当我点击Delete按钮时,它总是只删除列表上的最后一项。不管我按哪个按钮。我希望它删除我单击的按钮的相应组项。有人能告诉我要使用哪个rowId从数据库中删除特定的组项吗?这是我的按钮点击监听器代码Android 使用按钮从sqlite数据库中删除可扩展列表视图,android,sqlite,android-layout,expandablelistview,expandablelistadapter,Android,Sqlite,Android Layout,Expandablelistview,Expandablelistadapter,我有一个可扩展的列表视图,它有一个删除按钮,可以先从适配器中删除,然后再从数据库中删除。代码在模拟器上运行良好问题是,当我点击Delete按钮时,它总是只删除列表上的最后一项。不管我按哪个按钮。我希望它删除我单击的按钮的相应组项。有人能告诉我要使用哪个rowId从数据库中删除特定的组项吗?这是我的按钮点击监听器代码 @Override public View getGroupView(int groupPosition, boolean isExpanded, View conve
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
String headerTitle = (String) getGroup(groupPosition);
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) this._context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.list_group, null);
}
TextView lblListHeader = (TextView) convertView
.findViewById(R.id.lblListHeader);
lblListHeader.setTypeface(null, Typeface.BOLD);
lblListHeader.setText(headerTitle);
Button delButton = (Button) convertView.findViewById(R.id.delButton);
delButton.setFocusable(false); // remove focus from the button
delButton.setOnClickListener( // del onclick listener
new View.OnClickListener() {
@Override
public void onClick(View v) {
String[] columns = new String[] { testshop.TABLE_ROW_ID,
testshop.TABLE_ROW_ONE, testshop.TABLE_ROW_TWO };
Cursor cursor = testshop.db.query(testshop.TABLE_NAME, columns, null,
null, null, null, null);
cursor.moveToFirst();// move the cursor to the first item
if (!cursor.isAfterLast()) {
do{
Long rowId = cursor.getLong(0);
String item_name = cursor.getString(1);
} while (cursor.moveToNext());}
}
//delete from group array elements
_listDataHeader.remove(item_name);
notifyDataSetChanged(); //notify of data change in array
testshop.deleteRow(testshop.TABLE_NAME,
testshop.TABLE_ROW_ID, Long.toString(rowId)); //delete from database
//I'm using this toast to debug
Toast.makeText(_context, "Sucessfully Deleted" +rowId + getdeletedString(rowId),
Toast.LENGTH_SHORT).show();
}
});
当从数据库加载数据时,应该记住ID,并将其存储在适配器中。考虑使用A。我会怎么做?问题在于将列表中的每个按钮与列表中的特定项相关联。从DB中删除它只会在我删除错误的项@CL时起作用。关于
SimpleCorSortreeAdapter
示例和教程,您有什么特别不了解的地方吗?是的。我将如何链接按钮和listview项,以便能够从Adapter类@CL中的DB中删除它。