- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
接下来的两个语句生成了正确的左下方屏幕:
if(isChecked) sw.setText ("This switch is: On");
else sw.setText ("This switch is: Off");
根据我正在查看的文本,接下来的两个语句应该在左侧生成屏幕。但是他们在右下方生成了不正确屏幕:
if(isChecked) sw.setTextOn ("This switch is: On");
else sw.setTextOff("This switch is: Off");
代码:
package com.dslomer64.checkbox;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.Switch;
public class MainActivity extends ActionBarActivity{//} implements CompoundButton.OnCheckedChangeListener {
CheckBox cb;
Switch sw;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
cb = (CheckBox)findViewById(R.id.check);
cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked)
cb.setText("checked");
else
cb.setText("Unchecked");
}
});
sw = (Switch)findViewById(R.id.swish);
sw.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked)
sw.setTextOn("This switch is: On"); ////////////
else
sw.setTextOff("This switch is: Off"); //////////
}
});
}
}
xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity" android:weightSum="1">
<Switch
android:layout_width="453dp"
android:layout_height="100dp"
android:id="@+id/swish"
android:layout_gravity="center_vertical"
android:layout_alignParentTop="true" android:layout_centerHorizontal="true"/>
<CheckBox
android:text="Unchecked"
android:layout_width="200dp"
android:layout_height="100dp"
android:id="@+id/check"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"/>
</RelativeLayout>
书上关于 setTextOn
和 setTextOff
的内容有错吗?我在 java 代码或 xml 中有问题吗?
最佳答案
setTextOn
和 setTextOff
函数用于根据 Switch
的状态设置标签。
文本“The switch is: On”只是您的 Switch 的标签,并不传达您的 Switch
的状态。
为了达到你想要的结果,你需要调用setShowText(true)
:
sw = (Switch)findViewById(R.id.swish);
sw.setShowText(true);
或者您可以将其添加到您的 XML 中。
<Switch
android:layout_width="453dp"
android:layout_height="100dp"
android:id="@+id/swish"
android:layout_gravity="center_vertical"
android:layout_alignParentTop="true"
android:showText="true"/>
关于java - Android setTextOn 在 onCheckChanged 方法中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29811646/
是否有任何解决方法可以帮助我以编程方式更改状态使用 switch.setChecked(true); 的 Switch 小部件而不触发 OnCheckedChangedlistener()? swit
我的困境是我想用 radioGrp.clearCheck(); 经过一些研究,我发现这样做的方法就是这样 selectedid = radioGrp.getCheckedRadioBu
我有一个在中继器内部动态生成的单选按钮控件。在此单选按钮上,我调用 OnCheckChanged 来更改检查单选按钮后代码中的某些值。 ' OnCheckedChanged="RadioButton
我一直在努力解决 RadioButton 的编程检查问题,该 RadioButton 位于 RadioGroup 中。似乎单个 check() 调用会引发三个事件 - 第一个 RadioButton
我正在寻找一种在不触发 OnCheckedChangedlistener 的情况下使用 switch.setChecked(true); 以编程方式更改 Android Switch 小部件状态的方法
我试图有一个带有一些尾随文本的复选框。这个想法是,无论您选择复选框本身还是文本,值都会被切换。为了代码的简洁性,我已经在可组合项中完成了所有操作。 选择文本时它按预期工作。但是当我专门按下该复选框时,
所以我有一个复选框,当它的 checkSate 更改时我希望它调用一个方法。 这是我的复选框: Sensor 1 然后在我的脚本中我有: function OnCheckedChangedM
我在 RecyclerView 项目中有复选框的地方工作。我知道它的一些问题。但是,只有 10 个项目并且没有滚动错误的监听器被调用。 我有这样的东西: private class MyAdapter
接下来的两个语句生成了正确的左下方屏幕: if(isChecked) sw.setText ("This switch is: On");
我正在尝试使用 asp.net 复选框服务器控件隐藏一个 div。我为服务器控件添加了一个 onclick javascript 代码,但它似乎不起作用....有什么建议吗? function
Android 上的动态表单可能非常困惑,我遇到过这种特殊情况,我通过 RadioGroup 和 AppCompatRadioButton 创建了一个选项列表,其中checkedId 与动态 Radi
我是一名优秀的程序员,十分优秀!