2012-06-25 52 views
0

我將如何將以下內容添加到偵聽器中進入一種方法。因此,而不是有兩個聽衆我可以有一個監聽器,這是點擊檢查該複選框.. thanksss如何在一種方法中使用多聽衆? (ANDROID)

public void onClick(View view) { 
    switch (view.getId()) { 
    case R.id.safe: 
     if (((CheckBox) view).isChecked()) { 
      ((CheckBox) view).setButtonDrawable(R.drawable.tick); 
     } else { 
      ((CheckBox) view).setButtonDrawable(R.drawable.black); 
     } 
     break; 

    } 
} 

}

回答

0

實現當前類的setOnClickListener ......

private void mufListener() { 
     muf = (CheckBox) findViewById(R.id.muf); 

     muf.setOnClickListener(this); 

    } 

    private void crewAreaListener() { 
     crewArea = (CheckBox) findViewById(R.id.crewArea); 
     crewArea.setOnClickListener(this); 

    } 



public void onClick(View view) { 

       switch(view.getID()){ 

       case R.id.muf: 
       case R.id.crewArea: 
       if (((CheckBox) view).isChecked()) { 
        ((CheckBox) view).setButtonDrawable(R.drawable.tick); 
       } else { 
        ((CheckBox) view).setButtonDrawable(R.drawable.black); 
         } 

       break; 
      case R.id.tv2: 
        break; 

      } 
} 
2

你可以實現View.OnClickListener然後你可以有一個方法。

public class NameClass extends Activity implements View.OnClickListener { 
    public void onClick(View view) { 
     switch(view.getId()) { 
     case R.id.someWidget: 
      // to do 
     break; 
     case R.id.anotherWidget: 
      // to do 
     break; 
     } 
    } 
} 


注:另外一個建議,儘量讓看也處於OnCheckedChangeListener

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
    switch (buttonView.getId()) { 
     case R.id.someButton: 
     if (isChecked) { 
      // some work 
     } 
     else { 
      // some another work 
     } 
     break; 
    } 
} 
+1

+1'OnCheckedChangeListener' –

+0

@AleksG感謝,在正常coditions我會建議他使用'OnCheckedChangeListener'但他用'OnClickListener '所以我確實加了兩種方法,也許對其他人來說第二種方法可能有用。 – Sajmon

+0

@ hawaii.five-0:我用你的代碼,但現在'剔'不會顯示:(:(代碼updatd) –

0

可以在收聽檢查ID:

private void setListeners() { 
    final View muf = findViewById(R.id.muf); 
    final View crewArea = findViewById(R.id.crewArea); 

    OnclickListener ocl = new OnClickListener() { 
     @OVerride 
     public void onClick(View view) { 
      Checkbox ck = null; 
      switch(view.getId()) { 
       case R.id.muf: ck = muf; break; 
       case R.id.crewArea: ck = crewArea; break; 
      } 

      if(ck == null) 
       return; 

      if (ck.isChecked()) { 
       ck.setButtonDrawable(R.drawable.tick); 
      } else { 
       ck.setButtonDrawable(R.drawable.black); 
      } 
     } 
    }; 

    muf.setOnClickListener(ocl); 
    crewArea.setOnClickListener(ocl); 
}