我的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();
答案 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();