我正在尝试在微调器列表中添加几个项目。但不管怎样,我总是在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);
}
}
谁能告诉我我在这里做错了什么?
答案 0 :(得分:4)
this
这是一个表示当前对象的Java关键字。如果我没有错,这个方法放在一个扩展Activity的类中。因此,this
引用Activity对象(在本例中用作Context)。由于它是静态方法,因此您无法使用关键字this
或非静态变量。
要修复它,请更改为以下行:
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(context, android.R.layout.simple_spinner_item, list);
答案 1 :(得分:2)
在java中,你不能在静态方法(静态上下文)中使用它。
静态方法不指向封闭类的任何实例。
答案 2 :(得分:0)
您在静态方法中使用它,这在java中是不合法的。