【问题标题】:button onclick listner on ListView using SimpleAdapter not working使用简单适配器的 ListView 上的按钮 onclick 侦听器不起作用
【发布时间】:2014-05-07 15:21:20
【问题描述】:

我想在 listview 上的按钮上制作 click listner ..我使用 SimpleAdapter 作为给定代码制作了 listview...

SimpleAdapter adapter = new SimpleAdapter(
                        UserBookmarks.this, bookmarksList,
                        R.layout.list_view_boookmarks, new String[] { BOOKMARK_NAME , BOOKMARK_CATEGORY , BOOKMARKS_RATTING_BAR, BOOKMARKS_REVIEW_TOTAL , BOOKMARKS_CITY }, new int[] { R.id.business_name , R.id.business_category , R.id.ratting, R.id.review_count,R.id.business_city });


adapter.setViewBinder(new SimpleAdapter.ViewBinder() {
    @Override
    public boolean setViewValue(View view, Object data, String textRepresentation)
    {
        if (view.getId() == R.id.removeBookmark) 
        {
              Button b=(Button) view;
              b.setOnClickListener( new View.OnClickListener() {

                 @Override
                 public void onClick(View v) {
                     Log.d("HIiiiiiiiiiii", "Button clickeddddddddd");
                     Toast.makeText(getApplicationContext(), "Click listner called", Toast.LENGTH_SHORT).show();
                 }
             });
             return true; 
         }
        return false;
    }
 });
setListAdapter(adapter);

但 onclick 列表器无法处理此代码....我尝试了太多但无法解决此问题....如果有人得到请回答... 以及如何知道用户点击了哪个按钮 id..表示列表位置...

【问题讨论】:

    标签: android android-listview buttonclick


    【解决方案1】:

    检查以下代码

    SimpleAdapter adapter = new SimpleAdapter(UserBookmarks.this, bookmarksList,
      R.layout.list_view_boookmarks, new String[] { BOOKMARK_NAME , BOOKMARK_CATEGORY ,         BOOKMARKS_RATTING_BAR, BOOKMARKS_REVIEW_TOTAL , BOOKMARKS_CITY ,**BUTTONLABEL**}, new int[] { R.id.business_name , R.id.business_category , R.id.ratting, R.id.review_count,R.id.business_city ,**R.id.removeBookmark**});
    

    在代码中添加粗体字段 Click here for code Help

    【讨论】:

      【解决方案2】:

      我认为问题是因为这个 id “removeBookmark”而出现的。

      【讨论】:

      • 为什么在视图活页夹中使用 R.id.removeBookmark?因为您没有将这个 id 传递给您的适配器。
      • removeBookmark 是十字按钮的 id,所以我认为不需要传入适配器......它是静态的......如果你有其他想法来实现这个逻辑请给我...... .
      • 您必须使用自定义适配器并将此 OnClickListener 写入该自定义适配器。
      猜你喜欢
      • 2015-04-18
      • 2020-08-17
      • 2020-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-11
      • 1970-01-01
      • 2013-05-16
      相关资源
      最近更新 更多