代码之家  ›  专栏  ›  技术社区  ›  Exumer

如何从通过布局xml中的条目添加的微调器中删除项目?

  •  -2
  • Exumer  · 技术社区  · 7 年前

    我的字符串中有这个数组。xml:

    <string-array name="lst_addressTypes">
        <item>FISCAL</item>
        <item>NAP</item>
        <item>SUCURSAL</item>
        <item>ALMACEN</item>
        <item>OFICINA</item>
        <item>OTRO</item>
    </string-array>
    

    布局XML中有一个微调器:

    <Spinner
        android:id="@+id/cboTipoDireccion"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:entries="@array/lst_addressTypes" />
    

    我想以编程方式删除一些项目。

    我试着这样做: spinnerObject.removeViewAt(0) 但这引发了“InvalidOperationException”

    1 回复  |  直到 7 年前
        1
  •  2
  •   propoLis    7 年前

    您可以添加 String[] ArrayList<String> 用于活动中的条目。

    正在添加:

        List<String> entriesList = new ArrayList<>();
    
        // add items into spinner dynamically
        public void addItemsOnSpinner() {
    
            String[] entries = getResources().getStringArray(R.array.lst_addressTypes);     
            entriesList = new ArrayList<String>(Arrays.asList(entries));
    
            Spinner spinner = (Spinner) findViewById(R.id.cboTipoDireccion);
            ArrayAdapter spinnerAdapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item, entriesList);
            spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    
            spinner.setAdapter(spinnerAdapter);
    
        }
    

    正在删除:

     entriesList.remove(0);
     spinnerArrayAdapter.notifyDataSetChanged();