gpt4 book ai didi

android - 切换按钮在第二次单击时起作用 - Android

转载 作者:行者123 更新时间:2023-12-01 20:18:42 26 4
gpt4 key购买 nike

我在我的应用程序中添加了一个切换按钮,并创建了一个 setOnCheckChangeListener ,它将弹出 toast 消息。

但只有在第二次点击后才有效。

有什么想法吗?

主要 Activity :

    public void checkSwitch (View view)
{
addBeeps.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked)
{
beeps = true;
Toast.makeText(MainActivity.this,"beeps is True",Toast.LENGTH_LONG).show();
}else
{
beeps = false;
Toast.makeText(MainActivity.this,"beeps is False",Toast.LENGTH_LONG).show();
}
}
});

}

最佳答案

我认为在包含 addBeeps 开关的 xml 文件中,您正在使用此代码。

<Switch
android:id="@+id/addBeeps"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="checkSwitch"/>

根本原因:第一次检查开关时,将在其上设置监听器并且不执行任何操作,第二次再次检查开关时,将触发监听器并显示 Toast显示。

解决方案:这是适合您的解决方案。

从 xml 文件中的开关中删除 onClick

<Switch
android:id="@+id/addBeeps"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
MainActivity

删除注释掉 checkSwitch 方法,并将设置监听器 block 代码移至 onCreate 方法。

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

addBeeps = findViewById(R.id.addBeeps);

// TODO: Put set listener block code here
addBeeps.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
beeps = true;
Toast.makeText(MainActivity.this, "beeps is True", Toast.LENGTH_LONG).show();
} else {
beeps = false;
Toast.makeText(MainActivity.this, "beeps is False", Toast.LENGTH_LONG).show();
}
}
});
}

// TODO: Delete or comment-out this method
// public void checkSwitch(View view) {
// addBeeps.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
// @Override
// public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// if (isChecked) {
// beeps = true;
// Toast.makeText(MainActivity.this, "beeps is True", Toast.LENGTH_LONG).show();
// } else {
// beeps = false;
// Toast.makeText(MainActivity.this, "beeps is False", Toast.LENGTH_LONG).show();
// }
// }
// });
// }

关于android - 切换按钮在第二次单击时起作用 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58946495/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com