如何在一种方法中使用多侦听器? (机器人)

时间:2012-06-25 14:02:22

标签: 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;

    }
}

}

3 个答案:

答案 0 :(得分: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 :(得分: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 :(得分: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);
}