通过onClickListener在自定义适配器中按位置获取数据

5月3日

看一下扩展BaseAdapter的自定义适配器:

public class DrawerAdapter extends BaseAdapter{

    static class ViewHolder{
        TextView        cat_Title;
        TextView        cat_Count;
    }

    private Activity                            mActivity;
    private ArrayList<HashMap<String, String>>  mData;
    private static LayoutInflater               mInflater;
    private JsonArray Categories                = null;
    public JsonObject Cat_Items                 = null;

    private static String                       CATEGORY_NAME;
    private static String                       CATEGORY_CNT;
    private static String                       CATEGORY_ID;

    public DrawerAdapter(Activity a, ArrayList<HashMap<String, String>> d){
        mActivity   = a;
        mData       = d;
        mInflater   = (LayoutInflater) mActivity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    @Override
    public int getCount() {
        return mData.size();
    }

    @Override
    public Object getItem(int position) {
        return position;
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        View dView              = convertView;
        ViewHolder holder       = null;

        HashMap<String, String> dCategorise = new HashMap<String, String>();
        dCategorise             = mData.get(position);
        CATEGORY_NAME           = dCategorise.get("CATEGORY_NAME");
        CATEGORY_CNT            = dCategorise.get("CATEGORY_CNT");
        CATEGORY_ID             = dCategorise.get("CATEGORY_ID");


        if (convertView == null){
            dView               = mInflater.inflate(R.layout.layout_drawer_list_row, null);
            holder              = new ViewHolder();

            holder.cat_Title    = (TextView) dView.findViewById(R.id.category_title);
            holder.cat_Count    = (TextView) dView.findViewById(R.id.category_counter);

            dView.setTag(holder);

        }else{
            holder = (ViewHolder) dView.getTag();
        }


        holder.cat_Title.setTag(position);
        holder.cat_Title.setTypeface(MyriadRegular);
        holder.cat_Title.setText(CATEGORY_NAME);

        holder.cat_Count.setTypeface(Yagut);
        holder.cat_Count.setText(CATEGORY_CNT);


        holder.cat_Title.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                int pos         = (Integer) v.getTag();
                String cat_ID   = mData.get(pos).get(CATEGORY_ID);
            }
        });
        return dView;
    }

}

这是我的自定义适配器,我正在导航抽屉中使用它。我想通过单击类别标题来获取类别ID,并将其发送到片段,并基于此更改片段数据库。但cat_ID返回null

现在我的问题是:1.为什么它返回空值?2.获取类别ID以发送到片段是否正确?

Rod_Algonquin

我建议CATEGORY_ID您在从HashMap获取按钮时将其直接添加到按钮的标签中

样品:

改变这个:

holder.cat_Title.setTag(position);

至:

holder.cat_Title.setTag(CATEGORY_ID);
public void onClick(View v) {
            String cat_ID        = (String) v.getTag();
        }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

自定义光标适配器(获取位置)

来自分类Dev

如何从ListView中的自定义适配器获取数据?

来自分类Dev

无法从自定义适配器中的edittext获取数据

来自分类Dev

使用自定义适配器时如何从Android中的ListView获取数据

来自分类Dev

Android ListView onClickListener自定义适配器

来自分类Dev

将onClickListener设置为自定义适配器

来自分类Dev

在自定义适配器类中使用OnclickListener

来自分类Dev

自定义适配器的getView返回错误的位置

来自分类Dev

根据自定义视图适配器的TAG值获取Item的位置

来自分类Dev

筛选的自定义适配器获取错误的项目位置

来自分类Dev

在自定义适配器notifyDataSetChanged上获取NullPointerException

来自分类Dev

从自定义适配器获取父布局

来自分类Dev

使用自定义适配器获取检查的项目

来自分类Dev

无法使用自定义适配器从Firebase获取数据,“不能在child()中为参数pathString传递null”

来自分类Dev

使用自定义适配器的Android数据绑定

来自分类Dev

自定义适配器不显示数据

来自分类Dev

自定义适配器不显示数据

来自分类Dev

无法在自定义适配器中按ID引用布局对象

来自分类Dev

在自定义ListView适配器中按项目时突出显示效果

来自分类Dev

无法在自定义适配器中按ID引用布局对象

来自分类Dev

按下按钮后,更新自定义适配器中的视图

来自分类Dev

在调试的自定义适配器中未调用Getview,发现位置返回为-1

来自分类Dev

在调试的自定义适配器中未调用Getview,发现位置返回为-1

来自分类Dev

通过自定义适配器在Listview的ImageView中动态添加图像

来自分类Dev

片段中的自定义阵列适配器

来自分类Dev

如何在Android中自定义适配器?

来自分类Dev

在RecyclerView适配器中设置自定义字体

来自分类Dev

自定义适配器中的setOnItemClickListener

来自分类Dev

自定义视图的适配器中的NullPointerException

Related 相关文章

  1. 1

    自定义光标适配器(获取位置)

  2. 2

    如何从ListView中的自定义适配器获取数据?

  3. 3

    无法从自定义适配器中的edittext获取数据

  4. 4

    使用自定义适配器时如何从Android中的ListView获取数据

  5. 5

    Android ListView onClickListener自定义适配器

  6. 6

    将onClickListener设置为自定义适配器

  7. 7

    在自定义适配器类中使用OnclickListener

  8. 8

    自定义适配器的getView返回错误的位置

  9. 9

    根据自定义视图适配器的TAG值获取Item的位置

  10. 10

    筛选的自定义适配器获取错误的项目位置

  11. 11

    在自定义适配器notifyDataSetChanged上获取NullPointerException

  12. 12

    从自定义适配器获取父布局

  13. 13

    使用自定义适配器获取检查的项目

  14. 14

    无法使用自定义适配器从Firebase获取数据,“不能在child()中为参数pathString传递null”

  15. 15

    使用自定义适配器的Android数据绑定

  16. 16

    自定义适配器不显示数据

  17. 17

    自定义适配器不显示数据

  18. 18

    无法在自定义适配器中按ID引用布局对象

  19. 19

    在自定义ListView适配器中按项目时突出显示效果

  20. 20

    无法在自定义适配器中按ID引用布局对象

  21. 21

    按下按钮后,更新自定义适配器中的视图

  22. 22

    在调试的自定义适配器中未调用Getview,发现位置返回为-1

  23. 23

    在调试的自定义适配器中未调用Getview,发现位置返回为-1

  24. 24

    通过自定义适配器在Listview的ImageView中动态添加图像

  25. 25

    片段中的自定义阵列适配器

  26. 26

    如何在Android中自定义适配器?

  27. 27

    在RecyclerView适配器中设置自定义字体

  28. 28

    自定义适配器中的setOnItemClickListener

  29. 29

    自定义视图的适配器中的NullPointerException

热门标签

归档