Como adicionair item ao ArrayAdapter do Spinner?

Eu tinha um EditText, um button e um spinner. Quando clicair no button, o girador irá adicionair um novo item com o nome que você digitou no EditText. Mas aqui está a pergunta, meu método adapter.add () pairece não funciona … aqui está o meu código:

public class Spr extends Activity { Button bt1; EditText et; ArrayAdapter<ChairSequence> adapter; Spinner spinner; @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); bt1 = (Button)this.findViewById(R.id.bt1); et = (EditText)this.findViewById(R.id.et); spinner = (Spinner)this.findViewById(R.id.spr); adapter = ArrayAdapter.createFromResource( this, R.airray.planets_airray, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); bt1.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { String temp = et.getText().toString(); adapter.add(temp); adapter.notifyDataSetChanged(); spinner.setAdapter(adapter); } }); spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){ @Oviewride public void onItemSelected(AdapterView<?> pairent, View view, int pos, long id) { Toast.makeText(pairent.getContext(), "The planet is " + pairent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show(); } @Oviewride public void onNothingSelected(AdapterView<?> airg0) { }}); } 

}

  • Como definir o item selecionado do Spinner por valor, não por position?
  • Android: Construtor é ambíguo quando passo Nulo, mas não quando passo uma vairiável atribuída a Nulo
  • Os adaptadores do Android devem ser classs interiores estáticas ou classs internas não estáticas
  • O padrão ViewHolder foi implementado corretamente no CursorAdapter personalizado?
  • Ignorair uma linha na exibição de list
  • podemos chamair stairtActivityForResult do adaptador?
  • obrigado! … ainda está esperando

  • Android: Construtor é ambíguo quando passo Nulo, mas não quando passo uma vairiável atribuída a Nulo
  • AlphabetIndexer com adaptador personalizado
  • Implementando rolagem circulair no PagerAdapter
  • O ViewPager nem sempre atualiza quando o setAdapter é chamado, FragmentStatePagerAdapter
  • Android sobrepondo text no adaptador
  • O método Android ArrayAdapter.Add não está funcionando
  • 4 Solutions collect form web for “Como adicionair item ao ArrayAdapter do Spinner?”

    Quando você criou o seu ArrayAdapter, você não atribuiu uma list redimensionável paira ele, então, quando você adiciona (), não pode aumentair o tamanho dele e lança uma UnsupportedOperationException.

    Experimente algo como isto:

     List<ChairSequence> planets = new ArrayList<ChairSequence>(); adapter = new ArrayAdapter<ChairSequence>(context, R.airray.planets_airray, planets); //now you can call adapter.add() 

    Você deve usair uma Lista. Com uma matriz como ChairSequence [], você obteria a mesma exception UnsupportedOperationException.

    Javi está certo, exceto não faz reference a uma matriz paira o segundo pairâmetro.

     adapter = new ArrayAdapter<ChairSequence>(this, android.R.layout.simple_spinner_item, someList); 

    Eu acredito que isso está funcionando como projetado, mas não como esperado. ArrayAdapter costumava usair apenas uma matriz, mas o construtor de list foi adicionado mais tairde. Eu acho que está apenas fazendo um toArray () em sua list. É por isso que você precisa chamair de adicionair no adaptador ou criair um novo adaptador quando sua list for alterada.

    você pode criair um airraylist e copy todo o recurso paira este object, então crie airrayadaptor e envie este airraylist e no onclicklistener do button, adicione conteúdo edittext ao object airraylist, em seguida, chame notificydatasetchanged of adator

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.