2011-04-29 119 views
0
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,它可以在spinner.i显示想要做的是,我添加一个数据不仅显示在m_adapterForSpinner上,而且还显示在微调器上。动态数据添加到微调器,但是,微调

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

} 

回答

1
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

尝试将项目添加到适配器后,调用notifyDataSetChanged()? spinner.setSelection(0);

+0

可能你不明白我的问题,我想更新三角形左边的数据,我的代码可以更新setDropDownViewResource中的微调框。当我点击该项目时,三角形左侧的数据是更新的,所以我希望当我添加数据时,微调器一次更新,不需要点击。 – pengwang 2011-04-29 06:45:00

1

您试图选择第一项:

+0

但我添加数据到m_adapterForSpinner是在最后,不是在第一,spinner.setSelection(0)总是显示第一个,所以不能满足我的需要 – pengwang 2011-04-29 08:08:33

+0

好吧,然后我没有得到你的问题 – ernazm 2011-04-29 08:10:28

+0

谢谢你你的线索,我解决了它。 – pengwang 2011-04-29 08:11:14