0

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

4 に答える 4

2

getApplicationContext()試してみてください:ActivityName.this

これにより、スピナーを表示するための正しいトークンが得られると確信しています。

于 2012-09-21T09:51:53.567 に答える
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();
于 2012-10-19T09:26:36.970 に答える
0

スピナーをアクティビティ/ビューに追加する必要があります。

これを試して:

ViewGroup v = (ViewGroup) findViewById(R.id.your_id_for_a_linear_layout); // or relatvie etc
v.addChild(t);
t.performClick();
于 2012-09-21T08:35:12.397 に答える
0

このコードを onCreate() に入れたと思います。レイアウトはまだウィンドウにアタッチされておらず、ウィンドウを表示しようとしています。そのため、ウィンドウ マネージャーは例外をスローします。このスピナーを表示レイアウトに追加するコードが見つかりませんでした。

于 2012-09-21T08:33:54.920 に答える