开发者

dynamic add data to spinner but not update the data on the spinner

 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 = (EditTex开发者_运维百科t)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");
}       

 }

my spinner m_adapterForSpinner is update very well,and if i choice one from m_adapterForSpinner,it can show on the spinner.i want to do is that i add one data it not only show on the m_adapterForSpinner and also show on the spinner.


Have you tried to select the first item? spinner.setSelection(0);?


addButton.setOnClickListener(new OnClickListener(){

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

           // m_adapterForSpinner.notifyDataSetChanged();
        }                   
    });


Try to call notifyDataSetChanged() after adding an item to adapter:

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

}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜