0

我正在创建一个带有书签的字典,并且我想要一个活动,我可以在其中删除书签中的单个数据。这是我想要做的示例布局

在此处输入图像描述

在每个数据的左角有一个可以删除项目的按钮 有没有一个按钮方法可以获取项目的_id 这就是我在列表视图中输出数据的方式

ourCursor = dbDictionaryHelper.getBookmarked(); startManagingCursor(ourCursor); adapter = new DeleteBookmarkAdapter(ourCursor); lvDeleteBookmark.setAdapter(adapter);

    class DeleteBookmarkAdapter extends CursorAdapter {
    DeleteBookmarkAdapter(Cursor c) {
        super(DeleteBookmarkActivity.this, c);
    }

    public void bindView(View row, Context ctxt, Cursor c) {
        DictionaryHolder holder = (DictionaryHolder) row.getTag();
        holder.populateFrom(c, dbDictionaryHelper);
    }

    public View newView(Context ctxt, Cursor c, ViewGroup parent) {
        LayoutInflater inflater = getLayoutInflater();
        View row = inflater.inflate(R.layout.deletebookmarkdata, parent,
                false);
        DictionaryHolder holder = new DictionaryHolder(row);
        row.setTag(holder);
        return (row);
    }
}

static class DictionaryHolder implements OnClickListener {
    private TextView word = null;
    private Button btnRemove = null;

    DictionaryHolder(View row) {
        word = (TextView) row.findViewById(R.id.tvDeleteBookmark);
    }

    void populateFrom(Cursor c, DictionaryHelper r) {
        word.setText(r.getName(c));
    }

希望你能帮助我...谢谢

4

2 回答 2

0

您可以使用列表视图。该活动显示您想要的所有数据的列表视图。在此列表视图中,对项目的触摸操作将其删除。
你会有更好的设计。用户不仅可以单击一个小按钮,还可以单击元素的所有行来删除它。
在列表视图中使用此方法来实现删除操作:

@Override
public void onListItemClick(ListView l, View v, int position, long id) {
    // Do something when a list item is clicked
}

这里是ListView的参考

于 2013-08-09T16:50:16.543 回答
0

您可以找到按钮并设置您的自定义侦听器:

public void bindView(View view, Context context, Cursor cursor) {
        String name = cursor.getString(itemNameIndex);
        boolean checked = cursor.getInt(itemCheckIndex) > 0;
        TextView nameTxt = (TextView) view.findViewById(R.id.item_name);
        Button removeBtn= (Button) view.findViewById(R.id.item_remove);
        checkChk.setOnClickListener(new OnRemoveItemClickListener(name));
        nameTxt.setText(name);
    }
@Override
    public View newView(Context context, Cursor c, ViewGroup parent) {
        View view = inflater.inflate(R.layout.row_item, null);
        return view;
    }
于 2013-11-06T08:03:14.310 回答