0

我有一个包含私有的类boolean和一个ArrayList. 我想Spinner用 my 中的元素填充 a ArrayList,但如果boolean是真的我想显示所有元素,否则我希望隐藏一个范围内的一些元素。我尝试了以下方法:

Spinner modeSpinner = (Spinner) v.findViewById(R.id.btn_setup_mode_spinner);
ArrayList<String> modeList = enc.getModes();
ArrayAdapter<String> modeAdapter = new ArrayAdapter<String>(v.getContext(), android.R.layout.simple_spinner_item, modeList);
modeAdapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
modeSpinner.setAdapter(modeAdapter);
if(!boolean){
    for(int i=4;i<8;i++){
        modeAdapter.remove((String) modeAdapter.getItem(i));
        modeAdapter.notifyDataSetChanged();
    }
}

但它不起作用。执行此操作的正确方法是什么? 更新:工作代码

Spinner modeSpinner = (Spinner) v.findViewById(R.id.btn_setup_mode_spinner);
ArrayList<String> modeList = enc.getModes();
ArrayAdapter<String> modeAdapter = new ArrayAdapter<String>(v.getContext(), android.R.layout.simple_spinner_item, modeList);
modeAdapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
modeSpinner.setAdapter(modeAdapter);
if(!boolean){
    for(int i=4;i<modeList.size();i++){
        modeAdapter.remove(modeList.get(i));
        modeAdapter.notifyDataSetChanged();
        i--;
    }
}
4

1 回答 1

2

您应该从适配器中删除的不是适配器字符串,而是您早期添加到其中的对象。

试试这个: modeAdapter.remove(modeList.get(i));

于 2013-06-20T19:12:19.363 回答