设置一个不可点击的gridView特殊项目

时间:2018-08-29 23:01:23

标签: android android-studio gridview

我正在用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);”但是没有用。 我在这里可以做什么?

1 个答案:

答案 0 :(得分:0)

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

@Override public boolean isEnabled(int position){ 返回false; //在这里设置您的条件 }