ToggleButton - >更改TextView

时间:2014-04-26 13:16:02

标签: java android

你能帮帮我吗?为什么这不起作用?我怎样才能让它发挥作用!谢谢 :) 该应用程序总是显示“我已关闭!”。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    ToggleButton b = (ToggleButton)findViewById(R.id.Button);
    TextView t = (TextView)findViewById(R.id.Field);

    if (b.isChecked() == false){
        t.setText("I'm turned off!");
    }
    if (b.isChecked()==true)

            t.setText("I'm turned on!");
    }

4 个答案:

答案 0 :(得分:0)

因为您仅在onCreate方法中更改文本。相反,您必须使用setOnClickListener方法对ToggleButton的更改做出反应。

答案 1 :(得分:0)

你应该把你的代码放在Button的setonclickListener上......或者什么......

Button.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
if (b.isChecked() == false){
        t.setText("I'm turned off!");
    }
    if (b.isChecked()==true)

            t.setText("I'm turend on!");
    }


                }
            });

答案 2 :(得分:0)

您可以使用以下内容:

yourToggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
            if (b) {
                Log.e("", "on");
            } else {
                Log.e("", "Off");
            }
        }
    });

答案 3 :(得分:0)

您只是在创建时检查ToggleButton的状态,这意味着它只会为您在XML中为该元素设置的默认选中值。您需要创建一个侦听器来检测更改并从侦听器中更新TextView。

代码示例:

b.setOnClickListener(new OnClickListener(){
   @Override
   public void onClick(View v) 
   {
       if(b.isChecked())
            t.setText("I'm turned on");
       else
            t.setText("I'm turned off"); 
   }    
});