با سلام
من چند تا imageview دارم که وقتی روشون کلیک میکنم دستور info اجرا میشه اینم کدش:
public class MainActivity extends Activity{
Integer[] cardsArray{101,102,103,104,105,106,201,202,203,204 ,205,206};
int cardNumber =1;
publicvoid onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv_11 =(ImageView)findViewById(R.id.iv_11);
iv_12 =(ImageView)findViewById(R.id.iv_12);
iv_13 =(ImageView)findViewById(R.id.iv_13);
iv_14 =(ImageView)findViewById(R.id.iv_14);
iv_11.setTag("0");
iv_12.setTag("1");
iv_13.setTag("2");
iv_14.setTag("3");
Collections.shuffle(Arrays.asList(cardsArray));
iv_11.setOnClickListener(newView.OnClickListener() {
@Override
publicvoid onClick(View v){
theCard =Integer.parseInt((String) v.getTag());
info(iv_11, theCard);
}
});
iv_12.setOnClickListener(newView.OnClickListener() {
@Override
publicvoid onClick (View v){
theCard =Integer.parseInt((String) v.getTag());
info(iv_12, theCard);
}});
iv_13.setOnClickListener(newView.OnClickListener() {
@Override
publicvoid onClick (View v){
theCard =Integer.parseInt((String) v.getTag());
info(iv_13, theCard);
}
});
iv_14.setOnClickListener(newView.OnClickListener() {
@Override
publicvoid onClick(View v){
theCard =Integer.parseInt((String) v.getTag());
info(iv_14, theCard);
}
});
privatevoid info(ImageView iv,int card){
if(cardNumber ==1){
firstCard = cardsArray[card];
if(firstCard >200){
firstCard = firstCard -100;
}
cardNumber =2;
iv.setEnabled(false);
}elseif(cardNumber ==2){
secondCard = cardsArray[card];
if(secondCard >200){
secondCard = secondCard -100;
}
cardNumber =1;
Handler handler =newHandler();
handler.postDelayed(newRunnable(){
@Override
publicvoid run(){
calculate();
}
},1000);
}
}
وقتی متد info اجرا میشه متغییر های firstcard وsecendcard مقدار هایی رو دریافت میکنن.
و اینم دستور if هستش:
if(firstCard==secondCard){
}
میخواستم بدونم چرا وقتی مقدار firstcard وsecendcard مساوی نیست دستور if اجرا میشه؟؟
وقتی روی imageview ها با سرعت کلیک میکنم این اتفاق میفته ولی با کلاس log چک کردم firstcard وsecendcard مقدارشون متفاوت بود.