2014-04-26 191 views
0

你能帮我吗?为什么这不起作用?我怎样才能使它工作!谢谢:) 该应用程序只是总是显示“我关掉了!”。ToggleButton - >更改TextView

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

回答

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"); 
    }  
}); 
+0

谢谢!这对我有效:)虽然我不得不让B和T最终! – NiDev

0

因为您只是在onCreate方法中更改文本。相反,您将不得不使用setOnClickListener方法对ToggleButton进行更改。

0

你应该把你的代码按钮或东西的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!"); 
    } 


       } 
      }); 
0

您可以使用这样的事情:

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