public View getView(final int position, View convertView, ViewGroup parent) {
View grid;
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ImageView imageview;
ImageView my_select = null;
final ImageView img_select;
if (convertView == null) {
grid = new View(mContext);
grid = inflater.inflate(R.layout.single_view, null);
imageview = (ImageView) grid.findViewById(R.id.SingleView);
img_select = (ImageView) grid.findViewById(R.id.tick);
imageview.setLayoutParams(new GridView.LayoutParams(250, 250));
imageview.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageview.setPadding(8, 8, 8, 8);
imageview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
else {
imageview = (ImageView) convertView;
}
imageview.setImageResource(Image[position]);
return imageview;
}
回答
得到请将点击收听了,如果条件:
public View getView(final int position,View convertView,ViewGroup parent){
View grid;
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ImageView imageview;
ImageView my_select=null;
final ImageView img_select;
if(convertView==null)
{
grid = new View(mContext);
grid = inflater.inflate(R.layout.single_view,null);
imageview = (ImageView)grid.findViewById(R.id.SingleView);
img_select = (ImageView)grid.findViewById(R.id.tick);
imageview.setLayoutParams(new GridView.LayoutParams(250,250));
imageview.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageview.setPadding(8,8,8,8);
}
else
{
imageview = (ImageView) convertView;
}
imageview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
imageview.setImageResource(Image[position]);
return imageview;
}
感谢您的回答,但这不会解决问题。因为我需要在用户点击gridview中的任何图像时勾选图像 – 2015-04-03 06:33:56
然后使用gridview.setonitemclicklistener(); – Shvet 2015-04-03 06:34:52
点击事件工作完美,但如何坚持(显示)正确的刻度图像到另一个点击图像正在令我望而生畏 – 2015-04-03 06:37:01
只需要创建一个布尔变量如。 isSelected在模型类中,您用于arrayList数据。在点击事件指派isSelected =真正的点击位置,做my_select.setSelected(data.getPosition(位置).isSelected)在getView ....
参考遵循这个例子...
* *********************** adapterClass ************************** **********
public class HiddenGalleryAdapter extends BaseAdapter {
private LayoutInflater infalter;
private ArrayList<HiddenGalleryPath> data = new ArrayList<HiddenGalleryPath>();
ImageLoader imageLoader;
private boolean isActionMultiplePick;
ViewHolder holder;
public HiddenGalleryAdapter(Context c, ImageLoader imageLoader) {
infalter = (LayoutInflater) c
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.imageLoader = imageLoader;
// clearCache();
}
@Override
public int getCount() {
return data.size();
}
@Override
public HiddenGalleryPath getItem(int position) {
return data.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
public void setMultiplePick(boolean isMultiplePick) {
this.isActionMultiplePick = isMultiplePick;
}
public void selectAll(boolean selection) {
for (int i = 0; i < data.size(); i++) {
data.get(i).isSeleted = selection;
}
notifyDataSetChanged();
}
public boolean isAllSelected() {
boolean isAllSelected = true;
for (int i = 0; i < data.size(); i++) {
if (!data.get(i).isSeleted) {
isAllSelected = false;
break;
}
}
return isAllSelected;
}
public boolean isAnySelected() {
boolean isAnySelected = false;
for (int i = 0; i < data.size(); i++) {
if (data.get(i).isSeleted) {
isAnySelected = true;
break;
}
}
return isAnySelected;
}
public ArrayList<HiddenGalleryPath> getSelected() {
ArrayList<HiddenGalleryPath> dataT = new ArrayList<HiddenGalleryPath>();
for (int i = 0; i < data.size(); i++) {
if (data.get(i).isSeleted) {
dataT.add(data.get(i));
}
}
return dataT;
}
public void addAll(ArrayList<HiddenGalleryPath> files) {
try {
this.data.clear();
this.data.addAll(files);
} catch (Exception e) {
e.printStackTrace();
}
notifyDataSetChanged();
}
public void changeSelection(View v, int position) {
((ViewHolder) v.getTag()).imgQueueMultiSelected
.setVisibility(View.VISIBLE);
if (data.get(position).isSeleted) {
data.get(position).isSeleted = false;
} else {
data.get(position).isSeleted = true;
}
((ViewHolder) v.getTag()).imgQueueMultiSelected.setSelected(data
.get(position).isSeleted);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = infalter.inflate(R.layout.hidden_img_gallery_item, null);
holder = new ViewHolder();
holder.imgQueue = (ImageView) convertView
.findViewById(R.id.imgQueuehidden);
holder.imgQueueMultiSelected = (ImageView) convertView
.findViewById(R.id.imgQueueMultiSelectedhidden);
if (isActionMultiplePick) {
holder.imgQueueMultiSelected.setVisibility(View.VISIBLE);
} else {
holder.imgQueueMultiSelected.setVisibility(View.GONE);
}
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
if (isActionMultiplePick) {
holder.imgQueueMultiSelected.setVisibility(View.VISIBLE);
} else {
holder.imgQueueMultiSelected.setVisibility(View.GONE);
}
}
holder.imgQueue.setTag(position);
try {
imageLoader.displayImage("file://" + data.get(position).sdcardPath,
holder.imgQueue, new SimpleImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
holder.imgQueue
.setImageResource(R.mipmap.image_gallery);
super.onLoadingStarted(imageUri, view);
}
});
if (isActionMultiplePick) {
holder.imgQueueMultiSelected
.setSelected(data.get(position).isSeleted);
}
} catch (Exception e) {
e.printStackTrace();
}
return convertView;
}
public class ViewHolder {
ImageView imgQueue;
ImageView imgQueueMultiSelected;
}
public void clearCache() {
imageLoader.clearDiscCache();
imageLoader.clearMemoryCache();
}
public void clear() {
data.clear();
notifyDataSetChanged();
}
}
*************************的GridView clickListner * **************************
GridView gridView;
gridView.setOnclickListner(mItemMulClickListener);
AdapterView.OnItemClickListener mItemMulClickListener = new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> l, View v, int position, long id) {
adapter.changeSelection(v, position);
}
};
你可以尝试修改代码如下,在这里我用viewHolder类你行的看法(ImageView的等),而不是直接在getview方法使用
private ViewHolder m_viewHolder;
public View getView(final int position, View convertView, ViewGroup parent)
{
View grid;
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
m_viewHolder = new ViewHolder();
if (convertView == null)
{
grid = new View(mContext);
grid = inflater.inflate(R.layout.single_view, null);
m_viewHolder.imageview = (ImageView) grid.findViewById(R.id.SingleView);
m_viewHolder.img_select = (ImageView) grid.findViewById(R.id.tick);
m_viewHolder.imageview.setLayoutParams(new GridView.LayoutParams(250, 250));
m_viewHolder.imageview.setScaleType(ImageView.ScaleType.CENTER_CROP);
m_viewHolder.imageview.setPadding(8, 8, 8, 8);
convertView.setTag(m_viewHolder);
}
else
{
// imageview = (ImageView) convertView;
m_viewHolder = (ViewHolder) convertView.getTag();
}
//following line will set your tick image's position so that even if your
//grid scrolls the tick image will not change its position
m_viewHolder.img_select.setTag(position);
m_viewHolder.imageview.setImageResource(Image[position]);
m_viewHolder.imageview.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
int position = Integer.parseInt(v.getTag().toString());
// using this position value which was set in tick image's set tag,
//you can set your tick image's visibility to visible or invisible.
//keep your tick image's visibility as invisible by default in your single_view xml layout file.
}
});
return convertView;
}
public class ViewHolder
{
private ImageView imageview, img_select;
}
让我试试这个.....真的很感谢你的努力@Android Weblineindia – 2015-04-06 03:55:07
- 1. 当另一个图像被点击时显示图像
- 2. 没有图像显示在GridView控件
- 3. 如何在GridView中单击图标/图像时显示网页?
- 4. 如何在另一个图像中显示多个图像。
- 5. 如何在GridView中的另一个ImageView上显示图像
- 6. 如何显示一个图像查看另一个图像?
- 7. 如何将图像切换到另一个图像上点击
- 8. 如何使用jQuery在另一个图像上显示图像
- 9. 如何在另一个图像上显示图像
- 10. GridView控件不能显示图像
- 11. 如何在GridView中单击图像时显示图像的全尺寸?
- 12. 当另一个图像被点击时检索图像源?
- 13. 如何在图像上点击事件并在Android的另一个活动中显示该图像?
- 14. 点击JButton显示图像
- 15. 在另一个视图控制器中快速显示图像(图像视图)
- 16. 如何点击一个按钮在TableViewCell中显示Swift图像?
- 17. 显示在flipview的图像,当在GridView上的图像被点击
- 18. 如何在单击图像时以全屏显示图像
- 19. 如何在GridView控件中显示图像
- 20. WPF菜单像控件显示时点击一个控件;)如何?
- 21. 在gridview中显示图像
- 22. 在GridView中显示图像
- 23. 显示图像在gridview + iphone
- 24. 用户点击时显示图像?
- 25. 点击按钮时显示图像?
- 26. 如何在GridView中显示图像?
- 27. 如何在GridView中显示图像?
- 28. 如何在GridView中显示图像
- 29. 我如何在GridView中显示图像?
- 30. 图像控件无法显示图像
什么叫蜱的意思图片? – Fahim 2015-04-03 06:28:26
当用户点击图片时,我会显示正确的打勾图片(小图片)告诉用户它已被选中 – 2015-04-03 06:30:33
http://stackoverflow.com/questions/29385226/max-selectable-count-for-choice -mode-multiple-modal-gridview/29385433#29385433 – Yogendra 2015-04-03 06:46:15