2012-09-21 54 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(); 
相關問題