0

如果我有 2 个微调器,第二个取决于第一个,我将从 MySQL 数据库中检索第二个微调器的信息,这取决于第一个微调器的选择,我成功地获取了第一个微调器的 id,但我不知道如何将它发送给另一个因为它对我不起作用

我的 MainActivity 类有:

new LoadAllCourses().execute(); //first spinner generation 
new LoadAllSection().execute(); //second spinner

class LoadAllCourses extends AsyncTask<String, String, String>

adapter1 = new  MyCustomAdapter(MainActivity.this,
                    android.R.layout.simple_spinner_item,
                    coursesList);

             spinner1.setAdapter(adapter1); // Set the custom adapter to the spinner

             spinner1.setOnItemSelectedListener(new OnItemSelectedListener() {
                    @Override
                    public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {

                         HashMap<String, String> map12 = coursesList.get(position);
                          String id3 = map12.get("CourseID");
                            // Do something
                         Log.d("All coursesdddddddddddddddddddddddddddddddddddd: ", id3);
                        // Do something

                    }
                    @Override
                    public void onNothingSelected(AdapterView<?> adapter) {

                    }
                });

现在我想获取 id3 并将其发送到

class LoadAllSection extends AsyncTask<String, String, String>

但这行不通

如果像我说的那样,我该如何解决

4

1 回答 1

0

如果我理解了您的问题,您需要在第一个微调器上进行选择,以便从数据库中进行搜索以填充第二个微调器。

如果在适配器 1 ( adapter1 = new MyCustomAdapter(MainActivity.this, android.R.layout.simple_spinner_item, coursesList);) courseList 中是一个数组,则可以从 setOnItemSelectedListener 中的微调器中获取所选项目,如下所示courseList [position]

获得所选项目后,您需要一个函数来在数据库中执行查询,例如load_all_selection(courseList [position])应该从数据库中返回一个结果数组。

由于它返回一个数组,您可以如下定义适配器 2
adapter2 = new MyCustomAdapter(MainActivity.this, android.R.layout.simple_spinner_item, load_all_selection(courseList [position]));
并将其分配给第二个微调器spinner2.setAdapter(adapter2);

所有这些都可以在 setOnItemSelectedListener 部分中完成,除了load_all_selection(...)函数的定义。

我希望我理解你的问题,这会有所帮助。如果不是,您仍然可以四处寻找不同的解决方案。

于 2012-11-17T14:42:44.577 回答