gpt4 book ai didi

java - Android setTextOn 在 onCheckChanged 方法中不起作用

转载 作者:搜寻专家 更新时间:2023-11-01 07:54:39 25 4
gpt4 key购买 nike

接下来的两个语句生成了正确的左下方屏幕:

                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");

enter image description here enter image description here

代码:

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>

书上关于 setTextOnsetTextOff 的内容有错吗?我在 java 代码或 xml 中有问题吗?

最佳答案

setTextOnsetTextOff 函数用于根据 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/

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