android切换按钮状态集texview文本

android切换按钮状态集texview文本,android,textview,togglebutton,Android,Textview,Togglebutton,我有一个切换按钮,当设置为on位置时,会将提示设置为我的一个textview “千克” 。 文本视图的初始提示是 “圣” 如果切换开关处于关闭位置,则应显示该选项 当我第一次启动应用程序时,textview显示 “圣” (一开始是ok的,因为切换开关处于关闭位置)现在当我按下切换开关时,它会转到打开位置并显示 “千克” 在文本视图中(这也可以。) 现在问题来了。如果我再次单击切换(关闭位置),文本视图将保持为 “千克” 有人知道我如何将其设置为在关闭状态下始终显示“st”,在打开状态下始终显示“

我有一个切换按钮,当设置为on位置时,会将提示设置为我的一个textview

“千克”

。 文本视图的初始提示是

“圣”

如果切换开关处于关闭位置,则应显示该选项

当我第一次启动应用程序时,textview显示

“圣”

(一开始是ok的,因为切换开关处于关闭位置)现在当我按下切换开关时,它会转到打开位置并显示

“千克”

在文本视图中(这也可以。)

现在问题来了。如果我再次单击切换(关闭位置),文本视图将保持为

“千克”

有人知道我如何将其设置为在关闭状态下始终显示“st”,在打开状态下始终显示“kg”

非常感谢

addListenerOnButton();

      }

      public void addListenerOnButton() {

        unitToggle = (Button) findViewById(R.id.unitToggle);
       final TextView tw1 = (TextView)findViewById(R.id.tw1);


        unitToggle.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {

               StringBuffer result = new StringBuffer();
               tw1.setHint("kg");

上述问题的主要原因是逻辑尚未实现

当您第一次单击按钮时,它会将文本设置为“kg”,每次单击都会将其设置为“kg”

tw1.setHint(“kg”);

在onClick()方法中,不保留按钮的状态。强调文本

为了使其正确,请使用布尔标志并在每次单击时更改其状态,并根据标志值设置文本


最好的方法是使用ToggleButton,它具有内置的开/关状态,因此您不需要使用on boolean标志并根据按钮状态设置提示。

上述问题的主要原因是尚未实现的逻辑

当您第一次单击按钮时,它会将文本设置为“kg”,每次单击都会将其设置为“kg”

tw1.setHint(“kg”);

在onClick()方法中,不保留按钮的状态。强调文本

为了使其正确,请使用布尔标志并在每次单击时更改其状态,并根据标志值设置文本

最好的方法是使用ToggleButton,它具有内置的开/关状态,因此您不需要使用开布尔标志并根据按钮状态设置提示。

试试看

private boolean on=false;

 unitToggle.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {

           StringBuffer result = new StringBuffer();
           if(on){
                tw1.setHint("kg");
                on = true;
           }else{
               tw1.setHint("st");
               on = false;
           }
试一试

private boolean on=false;

 unitToggle.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {

           StringBuffer result = new StringBuffer();
           if(on){
                tw1.setHint("kg");
                on = true;
           }else{
               tw1.setHint("st");
               on = false;
           }