динамически добавлять данные на счетчик, но не обновлять данные на счетчик - PullRequest
0 голосов
/ 29 апреля 2011
 public class testAddSpiner extends Activity {
private Spinner m_myDynamicSpinner;
private EditText m_addItemText;
private ArrayAdapter<CharSequence> m_adapterForSpinner;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


    m_myDynamicSpinner = (Spinner)findViewById(R.id.dynamicSpinner);        
    m_addItemText = (EditText)findViewById(R.id.newSpinnerItemText);
    Button addButton = (Button)findViewById(R.id.AddBtn);
    Button clearButton = (Button)findViewById(R.id.ClearBtn);


    m_adapterForSpinner = new ArrayAdapter(this, android.R.layout.simple_spinner_item);
    m_adapterForSpinner.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);        
    m_myDynamicSpinner.setAdapter(m_adapterForSpinner);
    m_adapterForSpinner.add("gr");        


    addButton.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {               
            addNewSpinnerItem();
        }                   
    });


    clearButton.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {
            clearSpinnerItems();
        }           
    });  
}

private void addNewSpinnerItem() {
    CharSequence textHolder = "" + m_addItemText.getText();
    m_adapterForSpinner.add(textHolder);

}

private void clearSpinnerItems() {
    m_adapterForSpinner.clear();
    m_adapterForSpinner.add("dummy item");
}       

 }

мой счетчик m_adapterForSpinner очень хорошо обновлен, и если я выберу один из m_adapterForSpinner, он может отображаться на счетчике. Я хочу добавить, что я добавляю данные, которые он не только отображает на счетчике m_adapterForSpinner, но и отображает их на счетчике.

Ответы [ 3 ]

1 голос
/ 29 апреля 2011

Вы пытались выбрать первый пункт? spinner.setSelection(0);

1 голос
/ 29 апреля 2011
addButton.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {               
            addNewSpinnerItem();
          int a=  m_adapterForSpinner.getCount();
            m_myDynamicSpinner.setSelection(a-1);

           // m_adapterForSpinner.notifyDataSetChanged();
        }                   
    });
0 голосов
/ 29 апреля 2011

Попробуйте вызвать notifyDataSetChanged () после добавления элемента в адаптер:

private void addNewSpinnerItem() {
    CharSequence textHolder = "" + m_addItemText.getText();
    m_adapterForSpinner.add(textHolder);
    m_adapterForSpinner.notifyDataSetChanged();

}
...