【问题标题】:Android: get id when Button is clickedAndroid:单击按钮时获取ID
【发布时间】:2013-08-09 16:36:49
【问题描述】:

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

在每个数据的左角有一个可以删除项目的按钮是否有一个可以获取项目_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));
    }

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

【问题讨论】:

    标签: android listview button sqlite


    【解决方案1】:

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

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

    Here the reference of ListView

    【讨论】:

    • 还有其他删除项目的选项吗?我只需要单击按钮即可删除...顺便说一句,感谢您分享您的想法
    【解决方案2】:

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

    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;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-25
      • 1970-01-01
      • 2019-10-09
      • 2021-09-05
      • 2021-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多