android spinner如果选择了某个项目,其他微调器就不见了

时间:2015-11-18 11:02:25

标签: android spinner

spinner a有2个项目:poison和non_poison

旋转器b有2个项目:飞镖蛙和毒蛇

旋转器c有2个项目:鸡肉和鸡蛋

长话短说,我想做 " IF"旋转器a =毒药上的选定项目 " THEN"微调器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;
}

}

3 个答案:

答案 0 :(得分:0)

您忘记检索您的微调器的当前所选项目;将其保存到spinner1x字符串,&amp;实现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

答案 1 :(得分: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);
        }
    }

});

答案 2 :(得分: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;
    }

    }