【发布时间】:2010-08-17 18:22:27
【问题描述】:
我创建了一个 ListView,其中包含一行,而该行又包含文本和一个按钮。 这个想法是让按钮功能作为删除按钮来删除行 来自列表和数据库。
为了做到这一点,我创建了一个适配器来处理按钮单击。此代码如下。 删除数据库记录工作正常,但我还没有成功刷新 ListView 这样记录就不会再显示了。
公共类 FeedArrayAdapter 扩展 ArrayAdapter {
private ARssEReaderDBAdapter dba;
private String TAG = "FeedArrayAdapter";
private View v;
private ListView feedList;
private OnClickListener btnDeleteFeedListener = new OnClickListener(){
public void onClick(View pView) {
dba = new ARssEReaderDBAdapter(getContext());
Integer objInt = (Integer) pView.getTag();
dba.open();
dba.deleteFeed(objInt);
dba.close();
Log.w(TAG, "Database row, " + pView.getTag() + " got clicked.");
}
};
public FeedArrayAdapter(Context context, int textViewResourceId, List<Feed> items) {
super(context, textViewResourceId, items);
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
Log.w(TAG, "getView");
v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.feedlistrow, null);
}
Feed feed = getItem(position);
if (feed != null){
v.setTag(feed.getFeedId());
TextView title = (TextView)v.findViewById(R.id.TextView01);
if (title != null){
title.setText(feed.getTitle());
}
Button btnDelete = (Button)v.findViewById(R.id.btnDelete);
btnDelete.setTag(feed.getFeedId());
btnDelete.setOnClickListener(btnDeleteFeedListener); //
}
return v;
}
}
非常感谢任何帮助。
理查德
【问题讨论】:
标签: android listview button refresh onclick