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的类中。因此,this指的是 Activity 对象(在这种情况下用作 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 回答