2

スピナー リストにいくつかのアイテムを追加しようとしています。しかし、どういうわけか毎回、私は常に以下の例外を受け取りますthis-

Cannot use this in a static context

以下は私のコードです

  public static void initSpinnerView(Context context, Spinner spinnerView, String prefix, int numItems, int layout) {

    //spinnerView = (Spinner) findViewById(R.id.spinner2);
    List<String> list = new ArrayList<String>();
    list.add("list 1");
    list.add("list 2");
    list.add("list 3");
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinnerView.setAdapter(dataAdapter);
    }
}

私がここで何をしているのか誰にも教えてもらえますか?

4

3 に答える 3

4
this

これは、現在のオブジェクトを示す Java キーワードです。私が間違っていなければ、このメソッドは Activity を拡張するクラスに配置されます。したがって、thisActivity オブジェクト (この場合は Context として使用されます) を参照します。thisまた、静的メソッドであるため、キーワードや非静的変数を使用することはできません。

これを修正するには、次の行に変更します。

ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(context, android.R.layout.simple_spinner_item, list);
于 2013-02-03T02:40:56.190 に答える
2

Java では、これを静的メソッド (静的コンテキスト) で使用することはできません。

静的メソッドは、囲んでいるクラスのインスタンスを指していません。

于 2013-02-03T02:31:18.390 に答える
0

Java では合法ではない静的メソッドでこれを使用しています。

于 2014-06-05T20:52:04.827 に答える