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