android 微调器如果选择了某些项目,其他微调器消失了

android spinner if some item selected, other spinner gone

微调器 a 有 2 个项目:毒药和 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;
}

}

您忘记检索微调器当前 选定的项目 并将其保存到 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
    }
});

The AdapterView.OnItemSelectedListener requires the onItemSelected() and onNothingSelected() callback methods.

Android Spinners

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);
        }
    }

});

我只是在使用您的代码进行更正..

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;
    }

    }