在微调器中隐藏字符串数组值

Hide String Array Value in Spinner

我正在使用两个微调器并使用相同的字符串数组填充它们:

final String[] arrayMonths = { "January", "Feburary", "March", "April", "May",
    "June", "July", "August", "September", "October", "November","December" };

现在我想做一个小改动,我不想在 spinner1 中显示 december,在 [=22= 中显示 January ]spinner2.

所以我必须在我的代码中更改哪里才能完成此操作?

代码

 adapter = new ArrayAdapter<String> (ConnectedSpinnersStartEnd.this, 
                android.R.layout.simple_spinner_item, arrayMonths);

 spinner1.setAdapter(adapter);

这比你想象的要容易得多。第一步是从数组移动到 ArrayList,这给你更多的灵活性,并将它提交到 ArrayAdapter 而不是 Array

ArrayList<String> mList = new ArrayList( Arrays.asList(arrayMonths));
mList.remove("December");
adapter = new ArrayAdapter<String> (ConnectedSpinnersStartEnd.this, 
        android.R.layout.simple_spinner_item, mList);

关于 onItemSelected,如果我理解正确的话,您想从第一个微调器中删除所选项目并将其添加到第二个微调器中,

spinner1.setOnItemSelectedListener(new OnItemSelectedListener() {

    @Override
    public void onItemSelected(AdapterView<?> parent, View view,
            int position, long id) {
        String str1 = (String) parent.getItemAtPosition(position);
        if (spinner2.getAdapter() == null) {
               ArrayList<String> list =  new ArrayList( Arrays.asList(arrayMonths));
               list.remove("January");
               ArrayAdapter adapter = new ArrayAdapter<String>(ConnectedSpinnersStartEnd.this, android.R.layout.simple_spinner_item, list);
               spinner2.setAdapter(adapter);
        } 

我写在头上了,检查错别字

您可以在将数组转换为列表后使用子列表:

https://docs.oracle.com/javase/8/docs/api/java/util/List.html#subList-int-int-

喜欢:monthsList.subList(0,11)monthsList.subList(1,12)