java - 不能在静态上下文 android spinner 中使用它

标签 java android spinner

我正在尝试在微调器列表中添加一些项目。但不知何故每次,我总是在 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);
    }
}

谁能告诉我我做错了什么?

最佳答案

this

这是一个 Java 关键字,表示当前对象。如果我没记错的话,这个方法放在一个扩展 Activity 的类中。因此,this 指的是 Activity 对象(在本例中用作 Context)。由于它是静态方法,因此您不能使用关键字 this 或非静态变量。

为了修复它,更改为这一行:

ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(context, android.R.layout.simple_spinner_item, list);

关于java - 不能在静态上下文 android spinner 中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14668874/

相关文章:

java - 在没有自定义样式的情况下在 Android Spinner 中的项目之间添加更多空间?

android - kivy - python - Spinner 输出文本/字符串如何使用

java - ArrayList Java 的数组

java - Android 而不是回收器 View 中的卡片 View ,该应用程序向我显示一个空白页面

Android:为什么我不能给 VideoView 一个 onClickListener?

android - 使用 SonarQube 分析 React Native 项目?

java - 将微调器数组中的选定值传递给另一个 Android 类

java - 构造函数抛出异常后可以调用finalize吗?

java - 在具有不同索引和大小的数组列表上添加不重复的元素

android - 为从 Play 商店安装的应用程序绘制覆盖权限