2014-04-26 256 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"); 
      } 
     } 
    });