2015-11-18 79 views
1

微調一個有2項:毒藥non_poisonAndroid的微調,如果選擇了一些項目,其他微調了

微調b具有2項:箭毒蛙和毒蛇

微調c具有導2項:雞肉和雞蛋

長話短說,我要讓 「IF」微調上一=毒藥 「然後」微調b =可見,微調c中選擇項目=不見了

繼承人我的代碼,使用setOnItemSelectedListener試過了,沒有錯誤顯示,但它不按照它應該的方式工作,我在這裏錯過了什麼?請幫我....

public class eatable extends Fragment { 
public String spinner1x; 

@Nullable 
@Override 

public View onCreateView(final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) { 

    final FrameLayout mRelative = (FrameLayout) inflater.inflate(R.layout.berita_layout, container, false); 

    final TextView text1 = (TextView) mRelative.findViewById(R.id.text_test1); 
    final TextView text2 = (TextView) mRelative.findViewById(R.id.text_test2); 
    final TextView text3 = (TextView) mRelative.findViewById(R.id.text_test3); 
    final Spinner spinner1 = (Spinner) mRelative.findViewById(R.id.spinner_test1); 
    final Spinner spinner2 = (Spinner) mRelative.findViewById(R.id.spinner_test2); 
    final Spinner spinner3 = (Spinner) mRelative.findViewById(R.id.spinner_test3); 
    spinner1x = spinner1.getSelectedItem().toString(); 

    spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> mRelative, View selectedItemView, int position, long id) { 
      // your code here 
      if (spinner1x.equals("poison")){ 
       spinner2.setVisibility(View.VISIBLE); 
       spinner3.setVisibility(View.GONE); 

      } 
     } 

    }); 
return mRelative; 
} 

} 
+0

編寫如下spinner1x = spinner1.getSelectedItem()的toString()。在onItemSelected方法 – Sanjeev

+0

嘗試從spinner1裏面的onim選擇 – Shekhar

+0

把spinner1x放到onItemSelected方法裏面,仍然不工作 –

回答

0

你忘了將它保存檢索您的微調&的當前所選項目spinner1x字符串,&實現onNothingSelected方法:

spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
    @Override 
    public void onItemSelected(AdapterView<?> mRelative, View selectedItemView, int position, long id) { 
      spinner1x = mRelative.getItemAtPosition(position).toString(); 
      // your code here 
      if (spinner1x.equals("poison")){ 
       spinner2.setVisibility(View.VISIBLE); 
       spinner3.setVisibility(View.GONE); 
      } 
    } 

    @Override 
    public void onNothingSelected(AdapterView<?> parent) { 
     // Another interface callback 
    } 
}); 

AdapterView.OnItemSelectedListener需要onItemSelected()onNothingSelected()回調方法。

Android Spinners

+0

getItemAtPosition(position)方法無法解析,這是因爲我的類擴展片段而不是活動?如果是的話,我應該怎樣改變getItemAtPosition? –

+0

@FabioKhinawan檢查我的更新。 –

+0

好嗎先生,它的工作不錯,很好,非常感謝你,確認,是的,我忘了retrived當前選擇的項目 –

0
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
    @Override 
    public void onItemSelected(AdapterView<?> mRelative, View selectedItemView, int position, long id) { 
     // Use spinner item position for this. 
     if (position == 0){ 
      spinner2.setVisibility(View.VISIBLE); 
      spinner3.setVisibility(View.GONE); 
     } 
    } 

}); 
+0

默認你的第0個位置已經選定,使這裏紡紗機3不shown.For說你必須寫下其他條件,並且你必須看到你的微調3。 – Sam

0

我只是用與修正你的代碼..

public class eatable extends Fragment { 
public String spinner1x; 

    @Nullable 
    @Override 

    public View onCreateView(final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) { 

     final FrameLayout mRelative = (FrameLayout) inflater.inflate(R.layout.berita_layout, container, false); 

     final TextView text1 = (TextView) mRelative.findViewById(R.id.text_test1); 
     final TextView text2 = (TextView) mRelative.findViewById(R.id.text_test2); 
     final TextView text3 = (TextView) mRelative.findViewById(R.id.text_test3); 
     final Spinner spinner1 = (Spinner) mRelative.findViewById(R.id.spinner_test1); 
     final Spinner spinner2 = (Spinner) mRelative.findViewById(R.id.spinner_test2); 
     final Spinner spinner3 = (Spinner) mRelative.findViewById(R.id.spinner_test3); 


     spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> mRelative, View selectedItemView, int position, long id) { 
       // your code here 
spinner1x = spinner1.getSelectedItem().toString(); 
       if (spinner1x.equals("poison")){ 
        spinner2.setVisibility(View.VISIBLE); 
        spinner3.setVisibility(View.GONE); 

       }else { 
        spinner2.setVisibility(View.GONE); 
        spinner3.setVisibility(View.VISIBLE); 
       } 
      } 

     }); 
    return mRelative; 
    } 

    } 
相關問題