gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 16:37:45 24 4
gpt4 key购买 nike

查看我的扩展 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 并将其发送到 fragment 并基于此更改 fragment 数据库。但是对于 cat_ID 返回 null

现在我的问题:1.为什么返回null?2.获取发送到fragment的category id的方式是否正确?

最佳答案

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

示例:

改变这个:

holder.cat_Title.setTag(position);

到:

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

关于android - 通过 onClickListener 在自定义适配器中按位置获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24470613/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com