【发布时间】:2014-06-28 20:20:05
【问题描述】:
看看我的扩展 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.为什么返回null? 2.获取发送到片段的类别ID是否正确?
【问题讨论】:
-
CATEGORY_ID = dCategorise.get("CATEGORY_ID"); 的结果是什么?
-
@Rod_Algonquin 对不起,我对 dCategorise 感到困惑?!
-
结果为空??对于 CATEGORY_ID ??尝试记录它
-
@Rod_Algonquin 啊哈,没有人,确实有问题!我在那里得到了正确的结果,就像另外两个 CATEGORY_NAME 和 CATEGORY_CNT 一样,但是我在 onClick 中得到了 null! :(
-
"确实有问题"???所以它是空的??
标签: android android-fragments onclicklistener baseadapter android-viewholder