qrt*_*tLs 5 android android-layout
在UI视图中,切换按钮没有进入OFF状态,我也设置了一个onCheckedChangeListener.它保持开启也变成灰色.这在使用API15的模拟器上发生,但不会出现在我的真实设备上的API19上.是代码还是模拟器?
最后一个sr.setChecked(false)只让按钮变为灰色但不将其设置为OFF.
重现行为的最小示例:class var:
Switch sr;
Switch srs;
Run Code Online (Sandbox Code Playgroud)
onCreate包括:
sr = (Switch) findViewById(R.id.switch_ros);
srs = (Switch) findViewById(R.id.switch_ros_stream);
sr.setOnCheckedChangeListener(this);
srs.setOnCheckedChangeListener(this);
Run Code Online (Sandbox Code Playgroud)
onCheckedChanged包括:
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
buttonView.setChecked(false);
}
Run Code Online (Sandbox Code Playgroud)
编辑:我尝试了Nexus_5_API_19而不是Nexus_4_API_19,它运行正常.似乎是Android-Bug.
将这两个人放在班级的前列
private Switch sr;
private Switch srs;
Run Code Online (Sandbox Code Playgroud)
然后在onCreate()中
@Override
protected void onCreate( Bundle savedInstanceCreate )
{
[...]// other onCreate() stuff
sr = (Switch) findViewById(R.id.switch_ros);
srs = (Switch) findViewById(R.id.switch_ros_stream);
sr.setOnCheckedChangeListener(this);
srs.setOnCheckedChangeListener(this);
}
Run Code Online (Sandbox Code Playgroud)
然后OnCheckedChangeListener()
@Override
public void onCheckedChanged( CompoundButton buttonView, boolean isChecked )
{
switch(buttonView.getId())
{
case R.id.switch_ros:
//boolean wifi_state = isConnected(isChecked);
sr.setChecked(isChecked);
break;
case R.id.switch_ros_stream:
[...]// other switch function
srs.setChecked(isChecked);
break;
}
}
Run Code Online (Sandbox Code Playgroud)
编辑 1 onCheckedChangeListener 找不到您尝试打开/关闭的开关按钮。这是因为您在该方法中放入了多个开关按钮。您将需要使用 switch case 或 if else 语句来区分您要切换的按钮。
| 归档时间: |
|
| 查看次数: |
536 次 |
| 最近记录: |