2015-09-02 88 views
-1

我是編程的超級新手,嘗試創建一個小型Android應用程序。 我想根據按下的單選按鈕將變量「stufe」設置爲1或2。 但它始終保持爲0。 這是我的代碼...我希望你能幫助我:使用單選按鈕設置變量

public class MainActivity extends ActionBarActivity { 

//Radio Button 
private int stufe; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    TextView textView2 = (TextView) findViewById(R.id.textView2); 
    textView2.setText(String.valueOf(stufe)); 
} 

public void onClick(View view){ 
    switch (view.getId()){ 
     case R.id.button1: 
      RadioButton onebutton = (RadioButton) findViewById(R.id.radio_one); 
      RadioButton twobutton = (RadioButton) findViewById(R.id.radio_two); 
      if (onebutton.isChecked()){ 
       stufe = 1; 
       onebutton.setChecked(true); 
       twobutton.setChecked(false); 
      } else { 
       stufe = 2; 
       onebutton.setChecked(false); 
       twobutton.setChecked(true); 
      } 
     break; 
    } 
} 
+0

安置自己的XML代碼。 –

+0

你如何觀察'stufe'的價值?只能通過textView2或者你做了一些調試? – User42

+0

我只通過textView2 – slashy

回答

0

你剛纔忘了的setText你已經改變了stufe值之後。

試試這個:

yourRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 
      @Override 
      public void onCheckedChanged(RadioGroup radioGroup, int checkedId) { 
        switch (checkedId){ 
         case R.id.radio_one: 
          stufe = 1; 
          break; 
         case R.id.radio_two: 
          stufe = 2; 
          break; 
         default: 
          break; 
        } 
        textView2.setText(String.valueOf(stufe)); 
      } 
     }); 
+0

做到了非常感謝,這幫了我很多! – slashy

+0

該變量現在在方法onCheckecChanged中設置.....是否有任何可以全局設置它,以便隨後可以使用它? – slashy

+0

我不明白你的問題,你想在全球設置什麼? –