2012-09-21 55 views
0

我在xml中有一个按钮。我想以编程方式弹出微调不是从XML后以编程方式创建微调器时出现错误

点击按钮。但是当我点击sbutton时,它给了我一个错误。

日志输出 - :

android.view.WindoManager 

$BadTokenException: Unable to add window--token null is not for an application 

这里是我的代码:

b1.setOnclickListener(new View.OnClickListener(){ 
public void onClick(View v) { 
List<String> list = new ArrayLIst<String>(Arrays.asList("a","s","d")); 
Spinner t = new Spinner(getApplicationContext()); 
ArrayAdapter<String> adp = new ArrayAdapter<String> 

(getApplicationContext(),android.R.layout.simple_spinner_item,list); 
adp.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
t.setAdapter(adp); 
t.performClick(); 

回答

2

给一个尝试:更改getApplicationContext()ActivityName.this

我相信这会给出正确的令牌出现微调。

0

我想你已经把这个代码转换成的onCreate()。布局尚未附加到窗口,并且您正试图显示窗口。所以窗口管理器会抛出一个异常。我没有找到任何代码将此微调器添加到显示布局。

0

您需要将微调器添加到您的活动/视图中。

试试这个:

ViewGroup v = (ViewGroup) findViewById(R.id.your_id_for_a_linear_layout); // or relatvie etc 
v.addChild(t); 
t.performClick(); 
1
 List<String> list = new ArrayList<String>(Arrays.asList("a","b","c")); 
     t = new Spinner(ActivityName.this); 
     ArrayAdapter<String> adp = new ArrayAdapter<String> 

     (ActivityName.this,android.R.layout.simple_spinner_item,list); 
     adp.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     t.setAdapter(adp); 
      t.performClick(); 
相关问题