首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >设置gridView的特定项不可点击

设置gridView的特定项不可点击
EN

Stack Overflow用户
提问于 2018-08-30 07:01:23
回答 1查看 29关注 0票数 1

我正在开发一个与安卓工作室的记忆游戏,我正在使用一个gridView来设置游戏活动中的卡片。这是我的gridView适配器的代码:

代码语言:javascript
运行
复制
public class CardGridViewAdapter extends BaseAdapter {

    private Context mContext;
    private int mCardId;

    public CardGridViewAdapter(Context context, int cardsIds) {
        mContext = context;
        mCardId = cardsIds;
    }

    public int getCount() {
        return mContext.getResources().getInteger(R.integer.num_of_cards);
    }

    public Object getItem(int position) {
        return null;
    }

    public long getItemId(int position) {
        return 0;
    }

    public View getView(int position, View convertView, ViewGroup parent) {

        ImageView imageView;

        if (convertView == null) {
            imageView = new ImageView(mContext);
            imageView.setLayoutParams(new ViewGroup.LayoutParams(300, 300));
            imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
            imageView.setPadding(8, 8, 8, 8);
        } else {
            imageView = (ImageView) convertView;
        }

        imageView.setImageResource(mCardId);
        return imageView;
    }
}

我需要每个项目变得不可点击后,它被点击。下面是onItemCLick方法:

代码语言:javascript
运行
复制
@Override
    public void onItemClick(AdapterView<?> adapterView, View cardView, int position, long l) {

        ImageView cardImageView = (ImageView)cardView;

        GameGraphics.RevealCard(cardImageView, mCardsIdsArray[position]);

        if(mNumOfClicks++ % 2 == 0){
            mFirstCard = cardImageView;
        }else{
            mSecondCard = cardImageView;

            mCardsGridView.setEnabled(false);

            delayHandler.postDelayed(new Runnable() {
                @Override
                public void run() {
                    checkForMatch();
                }
            }, 1100);
        }
    }

我试过"cardView.setClickable(false);“,但它不起作用。我能在这里做些什么?

EN

回答 1

Stack Overflow用户

发布于 2018-08-30 07:15:17

在自定义BaseAdapter中,覆盖"isEnabled“方法

@Override public boolean isEnabled(int position) { return false;//此处设置条件}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52087176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档