2013-06-20 84 views
0

我有一個類包含私人booleanArrayList。我想用我的ArrayList中的元素填充Spinner,但是如果boolean爲真,我想顯示所有元素,否則我希望隱藏某個範圍中的某些元素。我試過以下內容:隱藏Spinner中的一些元素

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--; 
    } 
} 

回答

2

你應該從適配器刪除不適配器字符串,但對象,您早日加入到它。

試試這個:modeAdapter.remove(modeList.get(i));

+0

雖然我必須每次啓動ArrayList,但它仍然有效。 (getModes被靜態訪問)我也必須改變for循環。 – Vektor88