我正在开发一个与安卓工作室的记忆游戏,我正在使用一个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);“,但它不起作用。我能在这里做些什么?
发布于 2018-08-30 07:15:17
在自定义BaseAdapter中,覆盖"isEnabled“方法
@Override public boolean isEnabled(int position) { return false;//此处设置条件}
https://stackoverflow.com/questions/52087176
复制相似问题