我有一个微调器(choice1)从数据库中获取它的值,我想第二个微调器(choice2)只有在选择了第一个微调器后才可用。此外,'course'的值需要传递给choice2适配器。
public class EventFragment extends Fragment {
private int index;
private Context ctx;
private Spinner choice1;
private Spinner choice2;
View v;
........................
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
v = inflater.inflate(R.layout.event_fragment, null);
this.ctx = getActivity();
.......................
choice1 = (Spinner) v.findViewById(R.id.courseSpinner);
ArrayAdapter<String> dataAdapter1 = new ArrayAdapter<String>(ctx,
android.R.layout.simple_spinner_item, db.getAllCourses());
dataAdapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
choice1.setAdapter(dataAdapter1);
String course;
course = choice1.getItemAtPosition(choice1.getSelectedItemPosition()).toString();
//在使用
中传递的课程值选择第一个微调器后启用第二个微调器 choice2 = (Spinner) v.findViewById(R.id.dateSpinner);
ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<String>(ctx,
android.R.layout.simple_spinner_item, db.getCourseDates(course));
dataAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
choice2.setAdapter(dataAdapter2);
答案 0 :(得分:0)
choice1.setOnItemSelectedListener(myListener);
private AdapterView.OnItemSelectedListener myListener = new AdapterView.OnItemSelectedListener {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
// ADD YOUR CODE FOR DATABASE HERE
// make your second spinner visible here
//ALSO perform click to you second spinner like this
choice2.performClick();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
//HIDE YOUR SECOND SPINNER IF NOTHING SELECTED
}
}
希望这就是你需要的......