以编程方式创建微调器时出错

时间:2012-09-21 08:14:13

标签: android

我的xml中有一个按钮。我想以编程方式弹出微调器,而不是在

之后从xml弹出

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

日志输出 - :

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();

4 个答案:

答案 0 :(得分:2)

试一试:使用getApplicationContext()

更改ActivityName.this

我确信这会给出显示微调器的正确标记。

答案 1 :(得分: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();

答案 2 :(得分:0)

我认为您已将此代码放入onCreate()中。布局尚未附加到窗口,您正在尝试显示窗口。所以窗口管理器会抛出异常。我没有找到任何代码来添加此微调器以显示布局。

答案 3 :(得分:0)

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

试试这个:

ViewGroup v = (ViewGroup) findViewById(R.id.your_id_for_a_linear_layout); // or relatvie etc
v.addChild(t);
t.performClick();