2017-03-29 8 views
-1

다음과 같이 일부는 빨간색으로 깜박입니다.클릭 이벤트에서 ImageView ID를 비교하는 방법은 무엇입니까?

enter image description here

enter image description here

은 내가 깜빡 색 imageViews 클릭있을 때는 그것뿐만 틱 마크를 변경하고 나는 비 깜박 imageViews을 클릭있을 때이 같은 십자가 표시를 변경, 그렇게하고 싶다.

내 문제는 현재 코드는 하나의 이미지 뷰와 다른 모든 이미지 뷰는 교차 표시되어 있습니다.

그래서 어떻게 하나 이상의 ImageView를 만들 수 있습니까?

org_id = new int[]{R.id.img1_1, R.id.img1_2, R.id.img1_3, R.id.img1_4}; 

     all = new int[]{R.id.img1_1, R.id.img1_2, R.id.img1_3, R.id.img1_4}; 




     Random random = new Random(); 
     for(int j=0;j<2;j++) { 
      id = all[random.nextInt(all.length)]; 


      ObjectAnimator animator = ObjectAnimator.ofInt(findViewById(id), "backgroundResource", R.drawable.new_stateimg, R.drawable.org_state).setDuration(2000); 
      Toast.makeText(Game.this, "index" + findViewById(id), Toast.LENGTH_LONG).show(); 
      animator.setEvaluator(new ArgbEvaluator()); 
      animator.start(); 

     for (int i=0; i < org_id.length; ++i) { 
      final int btn = org_id[i]; 

      findViewById(btn).setOnClickListener(new View.OnClickListener() { 
       public void onClick(View v) { 

        if ((findViewById(id)).equals(findViewById(btn))) 
        { 
         findViewById(id).setBackgroundResource(R.drawable.correct); 

        } else { 
         Toast.makeText(Game.this, "wrong", Toast.LENGTH_SHORT).show(); 
         findViewById(btn).setBackgroundResource(R.drawable.cross); 

        } 

       } 
      }); 
     } 
     } 

답변

0

코드에서 그것을 할

if (id.getId() == btn.getId()) 

처럼 ID를 비교 :

여기 내 코드입니다.

 public void onClick(View view) { 
      ImageView imgView = (ImageView)view; //edited 
      if(imgView.getDrawable().getConstantState().equals 
     (getResources().getDrawable(R.drawable.correct).getConstantState())) 
      imgView.setBackgroundResource(R.drawable.incorrect);//set here you incorrect image which you want. 

      else 
       imgView.setBackgroundResource(R.drawable.correct);//set here your correct image 

    } 
+0

무엇이 getId입니까? –

+0

이제 내 onClick 이벤트가 표시됩니다. 희망이 당신을 도울 것입니다. –

+0

첫 번째 getDrawable에 오류가 있습니다. –