Android 未为ToogleButton调用OnClickListener

Android 未为ToogleButton调用OnClickListener,android,Android,我尝试侦听一个ToogleButton,并在onCreate方法内编写ToogleButton.setOnClickListener,如下所示,但当我单击ToogleButton时,该方法不会被调用 请告诉我出了什么问题 public class MainActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstance

我尝试侦听一个ToogleButton,并在onCreate方法内编写ToogleButton.setOnClickListener,如下所示,但当我单击ToogleButton时,该方法不会被调用

请告诉我出了什么问题

public class MainActivity extends Activity {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // get the EditText and Toggle buttons

        final ToggleButton toggleBttn = (ToggleButton)findViewById(R.id.tggle);

        final EditText editText = (EditText)findViewById(R.id.editText1);


        // listen to toggleButton click

        toggleBttn.setOnClickListener( new OnClickListener() {

            @Override
            public void onClick(View v) {

                if(toggleBttn.isChecked())
                {
                    editText.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
                    System.out.println(" Its On");
                }
                else
                {
                    editText.setInputType(InputType.TYPE_NUMBER_VARIATION_NORMAL);
                    System.out.println(" Its Off ");
                }
            }
        });
    }
下面是活动XML

 <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="50dp"
        android:hint="Enter Password" >

        <requestFocus />
    </EditText>

    <ToggleButton 
        android:id="@+id/tggle"
        android:layout_below="@+id/editText1"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:checked="true"
        />

您在此处使用了错误的侦听器,请使用
OnCheckedChangeListener

就像这个例子

ToggleButton toggle = (ToggleButton) findViewById(R.id.togglebutton);
toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    if (isChecked) {
        // The toggle is enabled
    } else {
        // The toggle is disabled
    }
}
});
你可以在

我正在做这件事和它的工作

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final EditText e = (EditText) findViewById(R.id.type);
    ToggleButton t = (ToggleButton) findViewById(R.id.tggle);
    t.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            // TODO Auto-generated method stub
            if(isChecked)
            {
                Toast.makeText(MainActivity.this, "is checked", Toast.LENGTH_LONG).show();
                e.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
                e.setTransformationMethod(PasswordTransformationMethod.getInstance());
            }
            else
            {
                Toast.makeText(MainActivity.this, "is un-checked", Toast.LENGTH_LONG).show();
                e.setInputType(InputType.TYPE_NUMBER_VARIATION_NORMAL);
            }
        }
    });

能否尝试删除最终标识符?可以放静电代替。放静电是给错误什么??为什么是静态的??请不要弄乱OOPs的概念。我已经改为setOnCheckedChangeListener,但它仍然没有被调用。我不明白。我只是试了一下,效果很好。你得到System.out.println输出了吗?是否正在使用新的CompoundButton.OnCheckedChangeListener()??用这个。您可能正在使用其他类Yeh..甚至我都觉得奇怪..控制台中没有打印SOP..让我重新启动模拟器并尝试ITI如果输出正确打印,则其工作正常。你还想做什么?这是您的问题,对吗?您是否正在使用
newcompoundButton.OnCheckedChangeListener()
??用这个。您可能正在使用其他类
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final EditText e = (EditText) findViewById(R.id.type);
    ToggleButton t = (ToggleButton) findViewById(R.id.tggle);
    t.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            // TODO Auto-generated method stub
            if(isChecked)
            {
                Toast.makeText(MainActivity.this, "is checked", Toast.LENGTH_LONG).show();
                e.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
                e.setTransformationMethod(PasswordTransformationMethod.getInstance());
            }
            else
            {
                Toast.makeText(MainActivity.this, "is un-checked", Toast.LENGTH_LONG).show();
                e.setInputType(InputType.TYPE_NUMBER_VARIATION_NORMAL);
            }
        }
    });