我需要创建两个附带符(都显示一个位置列表),其规则如下:
假设我有一套通用的位置,如下所示:
考虑到在这4个名单中的位置是沿着4条独特的路线,如上文所列。
现在,我想填充在旋转-1(即所有4条线路上的国家)中的通用集合中的所有位置,它将充当一个"From“位置选择器。
一旦从Spinner-1中选择了一个位置,我希望只使用那些出现在所选位置所在的特定路由上的位置填充自旋器-2(它充当" to“位置选择器)。另外,我希望将所选位置从自旋器-1中排除在旋转-2中显示。
例如,如果墨西哥是从旋转-1,旋转-2应该显示美国,加拿大,牙买加.
对这一要求进行规划的最佳机制是什么?
发布于 2016-02-25 10:49:32
好的我现在已经做了,主要逻辑是
onItemSelectedListener
方法中,删除选定的元素并将适配器设置为第二个旋转器。,让我们看看
你有这样一个国家的ArrayList
final ArrayList<String> countries = new ArrayList<>();
countries.add("India");
countries.add("Japan");
countries.add("China");
countries.add("South Korea");
countries.add("Nepal");
和您有两个旋转器(spinner & spinner2)
Spinner spinner1 = (Spinner) findViewById(R.id.mySpinner1);
final Spinner spinner2 = (Spinner) findViewById(R.id.mySpinner2); //It is final because it was accessed within inner class but if you don't want so then declare it as class level variable
您首先为spinner
做了一个适配器
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, countries);
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(spinnerArrayAdapter);
在onItemSelected of spinner
中,从数组中删除所选元素,并将适配器设置为第二个spinner
,即spinner2
。
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
ArrayList<String> tempCounties = (ArrayList<String>) countries.clone();
tempCounties.remove(position);
ArrayAdapter<String> spinnerArrayAdapter2 = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item, tempCounties);
spinnerArrayAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(spinnerArrayAdapter2);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
发布于 2016-02-29 06:00:21
尝尝这个
String[] regionsArray;
List<String> regions;
Spinner spinner;
regionsArray=getResources().getStringArray(R.array.Country_array);
regions=new ArrayList<String>();
regions = new ArrayList<String>(Arrays.asList(regionsArray));
/* selected item will look like a spinner set from XML */
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, regions);
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(spinnerArrayAdapter);
/* Your ARRAY Defined in xml file */
<string-array name="Country_array">
<item>India</item>
<item>Japan</item>
<item>China</item>
</string-array>
https://stackoverflow.com/questions/35624353
复制相似问题