2010-11-05 52 views
0

我想要做的是使用if語句來確定我的微調項中的哪個項目被選中,然後從那裏允許兩個不同的單選按鈕選擇並取決於哪一個做不同的事情。 TextView的輸出將根據哪個Spinner項目和選擇哪個單選按鈕而更改。我對單選按鈕沒有任何問題,並且輸出會根據選擇哪一個而有所不同,但微調器不會執行任何操作。我可以選擇任何項目,它會有相同的輸出,並忽略關於微調的第一條if語句,並只使用第二條。我認爲它工作,並轉移到我的應用程序的其餘部分,然後回去測試它,現在我回來了到一個方。我不想使用OnItemSelectedListener,但我意識到我可能試圖以錯誤的方式將項目與微調項進行比較。對於OnItemSelectedListener我會用:我想使用帶有微調項目但沒有OnItemSelectedListener的if語句

if (parent.getItemAtPosition(pos).toString().equals("1-17")) 

,但我試圖做這樣的TextChangedListener內,並認爲這會工作,但我覺得真的紡紗混亂。

下面是一個類似於我只有我不在家的例子,所以我儘量重新創建它。我留下了一個數字格式異常,我沒有看到代碼,因爲我不記得我是如何做到的,但是如果輸入了一個數字然後刪除了,我的應用程序就會關閉,所以我不認爲這是必要的。

EditText et1; 
Spinner age; 
RadioGroup radio; 
RadioButton male; 
RadioButton female; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.calc); 

    number = (EditText) findViewById(R.id.number); 
    tv1 = (TextView) findViewById(R.id.tv1); 
    male = (RadioButton) findViewById(R.id.male); 
    female = (RadioButton) findViewById(R.id.female); 
    radio = (RadioGroup) findViewById(R.id.radio); 
    age = (Spinner) findViewById(R.id.ageselect); 

    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
      this, R.array.age_array, android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     age.setAdapter(adapter); 

textEdit.addTextChangedListener(new TextWatcher(){ 

      @Override 
      public void afterTextChanged(Editable editable) 
      { 
      int number = Integer.parseInt(number.getText().toString()); 
      if (age.getItemAtPosition(0).toString().equals("1-17")){ 
      if (male.isChecked()){ 
      if (number == 40){ 
      tv1.setText("60"); }} 
      if (female.isChecked()){ 
      if (number == 40){ 
      tv1.setText("50"); }}} 

      if (age.getItemAtPosition(1).toString().equals("18-20")){ 
      if (male.isChecked()){ 
      if (number == 40){ 
      tv1.setText("65"); }} 
      if (female.isChecked()){ 
      if (number == 40){ 
      tv1.setText("55"); }}} 

      } 

      @Override 
      public void beforeTextChanged(CharSequence text, int start, int count, int after) 
      { 
        // Do Stuff 

      } 

      @Override 
      public void onTextChanged(CharSequence arg0, int start, int before, int count) 
      { 
        // Do Stuff 

      } 

    }); 

我會很感激任何建議或鏈接,我可以找到這個信息。我一直在尋找很多沒有運氣,這個微調讓我瘋狂。我準備好放棄它,並使用更多的單選按鈕,但我不想混亂我的應用程序。 謝謝你們!

+0

我想我找到了答案在這裏: http://stackoverflow.com/questions/2129903/call-a-spinners-value-also-use-other-values-based-其中包含: Object item = spinner.getSelectedItem(); long id = spinner.getSelectedItemId(); int position = getSelectedItemPosition(); 查看selectedView = getSelectedView(); 我會試圖找出當我回家時如何使用其中之一。我不知道我是如何忽略這個線程的。 – Daniel 2010-11-05 15:25:51

回答

0

對不起,要求重複問題。我用下面的:

Object item = age.getSelectedItem(); 
if (item.equals("1-17")){