用集合保存每个item中控件的状态
解决方案 »
- 新手请教,在android想实现像卡拉ok一样的字幕显示效果,该如何实现?
- Android数据库打包 复制问题?
- 关于Android短信的问题
- 谁在做OpenCV向Android移植的大侠吗?期待您的到来
- 怎么在图片上添加文字或图片,然后合成一张图片?
- 大家好,请问在android上怎样实现将两个 视频文件合成一个视频文件 谢谢
- eclipse 搜索中文字符用正则添加到行尾(即+注释;//匹配到的中文字符)
- xutils无法进行下载了,总是提示EACCES(Permission denied),权限已加
- 在Android中导入httpcore-4.3.2.jar包,调用EntityUtils.consume(HttpEntity)提示找不到该方法
- 使用android.widget.seekbar,但是onProgressChanged没触发
- 安卓自动分页
- ListView不显示数据,咋回事啊?
将int colorpos=0后,第一行中的GribView的textview默认会被选中,但还是不能更改
将int colorpos=0后,第一行中的GribView的textview默认会被选中,但还是不能更改你误解我的意思了,我不是让你改colorpos的初始值,我是说,
你在getView的时候第一行,第一个位置是0
我怀疑,你click的时候,第一行,第一个位置setColorPos(int colorPos) set的是1
你log打印一下这些值,是不是匹配,我怀疑是这个地方的问题
将int colorpos=0后,第一行中的GribView的textview默认会被选中,但还是不能更改你误解我的意思了,我不是让你改colorpos的初始值,我是说,
你在getView的时候第一行,第一个位置是0
我怀疑,你click的时候,第一行,第一个位置setColorPos(int colorPos) set的是1
你log打印一下这些值,是不是匹配,我怀疑是这个地方的问题前辈,我测试了,不知测试方法对错;望指教
在if (position==colorpos) {
System.out.println(position);//打印(此处也打印过colorpos)
holder.button.setTextColor(R.color.time_people1);
holder.button.setBackgroundResource(R.drawable.time_red);
}不管点击一年级一班或二年级一班的任意一个log里面colorpos或position均显示两次0;
public void setColorPos(int colorPos){
System.out.println( colorPos);//打印
this.colorpos=colorPos;
notifyDataSetChanged();
}同前一次测试一样
将int colorpos=0后,第一行中的GribView的textview默认会被选中,但还是不能更改你误解我的意思了,我不是让你改colorpos的初始值,我是说,
你在getView的时候第一行,第一个位置是0
我怀疑,你click的时候,第一行,第一个位置setColorPos(int colorPos) set的是1
你log打印一下这些值,是不是匹配,我怀疑是这个地方的问题前辈,我测试了,不知测试方法对错;望指教
在if (position==colorpos) {
System.out.println(position);//打印(此处也打印过colorpos)
holder.button.setTextColor(R.color.time_people1);
holder.button.setBackgroundResource(R.drawable.time_red);
}不管点击一年级一班或二年级一班的任意一个log里面colorpos或position均显示两次0;
public void setColorPos(int colorPos){
System.out.println( colorPos);//打印
this.colorpos=colorPos;
notifyDataSetChanged();
}同前一次测试一样
按照你的逻辑,都返回0,应该怎么点都是一年级一斑变红色阿。但是你的 setColorPos 因该是set错了,怎么会点不同的textview,set都是0呢?这个你应该查一下。
public class MallAttributeGridAdapter extends BaseAdapter {
private Context mContext;
private ArrayList<ProductAttributeId> mList;
public static int colorpos=-1;
@SuppressWarnings("static-access")
public void setColorPos(int colorPos){ this.colorpos=colorPos;
//System.out.println(colorpos);
notifyDataSetChanged();
} public MallAttributeGridAdapter(Context mContext,
ArrayList<ProductAttributeId> mList) {
super();
this.mContext = mContext;
this.mList = mList;
} @Override
public int getCount() {
if (mList == null) {
return 0;
} else {
return this.mList.size();
}
} @Override
public Object getItem(int position) {
if (mList == null) {
return null;
} else {
return this.mList.get(position);
}
} @Override
public long getItemId(int position) {
return position;
} @Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
holder = new ViewHolder();
convertView = LayoutInflater.from(this.mContext).inflate(
R.layout.mall_attribute_girdview_item, null, false);
holder.button = (TextView) convertView.findViewById(R.id.textView1);
convertView.setTag(holder); } else {
holder = (ViewHolder) convertView.getTag();
}
if (position==colorpos) {
holder.button.setTextColor(R.color.time_people1);
holder.button.setBackgroundResource(R.drawable.time_red);
} else {
holder.button.setTextColor(R.color.time_people);
holder.button.setBackgroundResource(R.drawable.time_yellow);
}
holder.button.setText(mList.get(position).getDetailName());
return convertView;
} private class ViewHolder {
TextView button;
}
}Gribview的apadter
public class MallAttributeListAdapter extends BaseAdapter {
private ArrayList<MallClassifyEntity> mList;
private Context mContext;
private MallAttributeGridAdapter gridViewAdapter;
private HashMap<String, String>map_datail=new HashMap<String, String>();
private String temp[];
public MallAttributeListAdapter(
ArrayList<MallClassifyEntity> mList,
Context mContext) {
super();
this.mList = mList;
this.mContext = mContext;
} @Override
public int getCount() {
if (mList == null) {
return 0;
} else {
return this.mList.size();
}
} @Override
public Object getItem(int position) {
if (mList == null) {
return null;
} else {
return this.mList.get(position);
}
} @Override
public long getItemId(int position) {
return position;
} @Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
holder = new ViewHolder();
convertView = LayoutInflater.from(this.mContext).inflate(
R.layout.mall_attribute_item, null, false);
holder.textView = (TextView)
convertView.findViewById(R.id.textView1);
holder.gridView = (GridView) convertView.findViewById(R.id.listview_item_gridview);
//holder.gridView.setSelector(new ColorDrawable(Color.TRANSPARENT));
/*holder.gridView.setClickable(false);
holder.gridView.setPressed(false);
holder.gridView.setEnabled(false);*/
// holder.gridView.setTag(R.id.listview_item_gridview,);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
if (this.mList != null) {
// if (holder.imageView != null) {
// holder.imageView.setImageDrawable
// (mContext.getResources().getDrawable(R.drawable.e));
// }
if (holder.textView != null) {
holder.textView.setText(mList.get(position).getName());
}
if (holder.gridView != null) {
final ArrayList<ProductAttributeId> arrayListForEveryGridView = this.mList
.get(position).getAttributeList();
gridViewAdapter = new MallAttributeGridAdapter(
mContext, arrayListForEveryGridView);
holder.gridView.setAdapter(gridViewAdapter);
//获取商品属性,利用hashmap,kep为listview的position
holder.gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int gridposition, long id) {
gridViewAdapter.setColorPos(gridposition);
Log.e("~~~", arrayListForEveryGridView.get(gridposition).getDetailName());
}
});
}
}
return convertView;
}
private class ViewHolder {
TextView textView;
GridView gridView;
}
}Listview的adapter
楼上是gribview的adapter到现在此问题还没有解决,再次请求前辈帮忙看看,到底是哪里出错了
@tiantang198707
将int colorpos=0后,第一行中的GribView的textview默认会被选中,但还是不能更改你误解我的意思了,我不是让你改colorpos的初始值,我是说,
你在getView的时候第一行,第一个位置是0
我怀疑,你click的时候,第一行,第一个位置setColorPos(int colorPos) set的是1
你log打印一下这些值,是不是匹配,我怀疑是这个地方的问题前辈,我测试了,不知测试方法对错;望指教
在if (position==colorpos) {
System.out.println(position);//打印(此处也打印过colorpos)
holder.button.setTextColor(R.color.time_people1);
holder.button.setBackgroundResource(R.drawable.time_red);
}不管点击一年级一班或二年级一班的任意一个log里面colorpos或position均显示两次0;
public void setColorPos(int colorPos){
System.out.println( colorPos);//打印
this.colorpos=colorPos;
notifyDataSetChanged();
}同前一次测试一样
按照你的逻辑,都返回0,应该怎么点都是一年级一斑变红色阿。但是你的 setColorPos 因该是set错了,怎么会点不同的textview,set都是0呢?这个你应该查一下。到现在此问题还没有解决,到底是哪里出错了 已经将两个adapter都贴上代码,烦劳前辈帮忙看看