ラジオボタンを変更するとスピナーの視認性を変更したい。私がこのようにすると、両方のスピナーがView.GONE
であり、ラジオボタンの1つをクリックしても何も起こりません。View.GONE
ではなく、View.VISIBLE
のままです。私はIFをonViewCreated
に入れようとしましたが、結果は同じでした。私はどんな助けにも感謝します。ラジオボタンでスピナーの視認性を変更する
RadioButton rb1;
RadioButton rb2;
Spinner spinner2;
Spinner spinner1;
ArrayAdapter<CharSequence> adapter;
ArrayAdapter<CharSequence> adapter2;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_floating_button, container, false);
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
rb1 = (RadioButton) view.findViewById(R.id.rb1);
rb2 = (RadioButton) view.findViewById(R.id.rb2);
spinner2 = (Spinner) view.findViewById(R.id.spinner2);
spinner1 = (Spinner) view.findViewById(R.id.spinner1);
if(rb1.isChecked()){
spinner1.setVisibility(View.VISIBLE);
spinner1.setClickable(true);
}
else {spinner1.setVisibility(View.GONE);
spinner1.setClickable(false);}
if (rb2.isChecked()){
spinner2.setVisibility(View.VISIBLE);
spinner2.setClickable(true);
}
else {
spinner2.setVisibility(View.GONE);
spinner2.setClickable(false);
}
return view;
}
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
adapter= ArrayAdapter.createFromResource(getActivity(),R.array.array2,android.R.layout.simple_spinner_item);
adapter2= ArrayAdapter.createFromResource(getActivity(),R.array.array1,android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(adapter);
spinner1.setAdapter(adapter2);
spinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
switch (position) {
case 0:
....
default:
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}
);
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
switch (position) {
case 0:
....
break;
default:
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}
);
}
のようなあなたのコードを両方のラジオボタンのクリックリスナーに追加して貼り付ける必要があります
–