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

问题描述 投票:0回答:1

我正在用android studio开发一个记忆游戏,我正在使用gridView来设置游戏活动中的牌。这是我的gridView适配器的代码:

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方法:

@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);”但它不起作用。我能在这做什么?

android android-studio gridview
1个回答
0
投票

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

@Override public boolean isEnabled(int position){return false; //这里设置你的条件}

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.