我正在用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);”但是没有用。 我在这里可以做什么?
答案 0 :(得分:0)
在您的自定义BaseAdapter中,覆盖“ isEnabled”方法
@Override public boolean isEnabled(int position){ 返回false; //在这里设置您的条件 }