我有一个问题,我想加载项目在一个微调项目的另一个微调项目。实际上我是两个spinners,数据从json_parsing被加载到第一个spinner中,并且在从第一个spinner中选择一个项目后,我必须在第二个Spinner中加载数据,所以我不知道它将如何实现?请建议我正确的解决方案。更改项目的微调项目点击另一个微调在Android
在此先感谢。
我有一个问题,我想加载项目在一个微调项目的另一个微调项目。实际上我是两个spinners,数据从json_parsing被加载到第一个spinner中,并且在从第一个spinner中选择一个项目后,我必须在第二个Spinner中加载数据,所以我不知道它将如何实现?请建议我正确的解决方案。更改项目的微调项目点击另一个微调在Android
在此先感谢。
你能做到这样,你的数据将在第一和第二微调加载
第一次。 关于从第一个微调项目选择做到这一点。
1.) Clear the previous ArrayList or Array whateven you have passed the
Second Spinner.
2.) Fill the ArrayList or Array of new data & Update the Second Spinnner using
adapter.notifyDataSetChanged();
second_spinner.setSelection(0);
在您的第一个微调器上设置一个OnItemClickListener,它将准备并将适配器设置为第二个微调器。
首先为您的第一个微调器设置一个OnItemClickListner。在OnItemClickListner方法中,首先解析您的XML。完成XML解析后,解析数据集的适配器以及该适配器与你的第二个微调
这里是一个更完整的代码示例:
Spinner spinner1 = (Spinner) findViewById(R.id.spinner1);
Cursor c1 = (some code for getting a cursor from an data source, for example, a sqlite database)
SimpleCursorAdapter adapter1 = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, c1, new String[]{"column_name"}, new int[]{android.R.id.text1});
spinner1.setAdapter(adapter1);
Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);
Cursor c2 = (some code for getting a cursor from an data source, for example, a sqlite database)
SimpleCursorAdapter adapter2 = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, c2, new String[]{"column_name"}, new int[]{android.R.id.text1});
spinner2.setAdapter(adapter2);
spinner1.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Cursor c_new = (create a new cursor);
adapter2.changeCursor(c_new);
adapter2.notifyDataSetChanged(); // this is important for notifying the UI
spinner2.setAdapter(adapter2);
}
});
你设置什么监听到第一Spinner
,还有第二Adapter
的Cursor
改变到一个新的,通知UI并重置第二个Spinner
的Adapter
。