1

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

“公斤”

. 文本视图的初始提示是

“英石”

如果拨动开关处于关闭位置,则应显示。

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

“英石”

(起初可以,因为切换开关处于关闭位置)现在当我按下切换开关时,它会转到打开位置并显示

“公斤”

在 textView 中(这也可以。)

现在问题来了。如果我再次单击切换(关闭位置),则 textView 保持为

“公斤”

有谁知道我如何将其设置为始终在关闭状态下显示“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");
4

3 回答 3

1
 unitToggle.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {

           StringBuffer result = new StringBuffer();
           if(tw1.getHint().toString().equals("kg"))
                tw1.setHint("st");             
           else
                tw1.setHint("kg");
于 2012-04-12T10:14:19.880 回答
0

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

当您第一次单击该按钮时,它将文本设置为“kg”,它将始终在任何次数的单击时设置。既然你已经写了声明

tw1.setHint("公斤");

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

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

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

于 2012-04-12T10:15:46.927 回答
0

尝试

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;
           }
于 2012-04-12T10:16:15.580 回答