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