【发布时间】:2018-12-31 12:36:45
【问题描述】:
Level Selection GridView 图片
我需要使第 1 级可点击和不可点击,当用户单击第 1 级时,它应该使第 2 级可点击和不可点击,依此类推。此外,如果用户处于 5 级,gridview 应该可以从 1 级到 4 级点击
myAdapter = new MyCustomAdapter(getActivity());
gridView.setAdapter(myAdapter);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
//do something
}
private class MyCustomAdapter extends BaseAdapter {
private LayoutInflater mInflater;
public MyCustomAdapter(Context context) {
mInflater = LayoutInflater.from(context);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
GridObject object = my.get(position);
GridObject revers=reverseobj.get(position);
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.list_item_icon_set, null);
holder = new ViewHolder();
holder.text = (ImageView) convertView.findViewById(R.id.text);
convertView.setTag(holder);
}
else
{
holder = (ViewHolder) convertView.getTag();
}
if (check.get(position).equals("true"))
{
holder.text.setImageResource(revers.getName());
}
else {
holder.text.setImageResource(object.getName());
}
return convertView;
}
@Override
public int getCount() {
return my.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
}
public class GridObject extends ArrayList<GridObject> {
private int image;
private int state;
public GridObject(int name, int state) {
super();
this.image = name;
this.state = state;
}
public int getName() {
return image;
}
public void setName(int name) {
this.image = name;
}
public int getState() {
return state;
}
public void setState(int state) {
this.state = state;
}
}
【问题讨论】:
-
到目前为止你做了什么来达到同样的效果?
-
禁用所有项目,然后只启用您需要可点击的项目。
-
你的gridView有什么模型吗?分享一些代码,以便我们为您提供帮助:)
-
有什么想法......?
-
@AbdulManan 如何在
onItemClick()中将position与您当前的级别进行比较并决定是否处理点击事件?您具体面临什么挑战?
标签: android gridview adapter onitemclicklistener