【问题标题】:Using an arraylist as the content for a spinner [duplicate]使用数组列表作为微调器的内容[重复]
【发布时间】:2020-09-07 16:29:02
【问题描述】:

我到处找,找不到使用 Java 样式列表作为微调器内容的方法!我能找到的只是如何在 xml 文件中使用字符串数组。有谁知道该怎么做,这是我的代码,但它不起作用,因为它是错误的第二个参数。

我的代码

    List<String> workoutArray= spinnerArray.workoutArray;
    Spinner spinner = findViewById(R.id.spinnerExercise1);
    ArrayAdapter<String> adapter = ArrayAdapter.createFromResource(this,
            workoutArray, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);

【问题讨论】:

  • 不幸的是,当我以这种方式实现它时会导致崩溃:ArrayAdapter&lt;String&gt; adapter = new ArrayAdapter&lt;String&gt;(getApplicationContext(), android.R.layout.simple_spinner_dropdown_item, workoutArray);
  • 它会导致什么崩溃?另外我不知道为什么这个答案建议getApplicationContext(),只需使用getContext() - 它更正确。

标签: java android arrays list spinner


【解决方案1】:

使用以下代码创建阵列适配器:

ArrayAdapter<String> adapter = new ArrayAdapter<>(this,android.R.layout.simple_dropdown_item_1line,workoutArray)

【讨论】:

  • 这修复了构建失败,但是它使活动崩溃,我应该更改第二个参数吗?
  • 是的,您可以更改第二个参数。此外,将第一个参数 this 替换为 YourActivity.this 。如果您仍然遇到任何问题,请在此处发布。
  • 所以我替换了第一个参数给我ArrayAdapter&lt;String&gt; adapter = new ArrayAdapter&lt;&gt;(WorkoutsCreater.this,android.R.layout.simple_dropdown_item_1line,workoutArray); IDE 喜欢它,但是当活动启动时它再次崩溃错误代码:原因:java.lang.NullPointerException:尝试调用虚拟方法' void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)' 在 com.example.workoutapp.WorkoutsCreater.onCreate(WorkoutsCreater.java:30) 处的空对象引用上
  • 我应该添加第 28 行是我粘贴的代码
  • 看起来问题出在您的微调器上,您能否确认您的 WorkoutsCreater 活动的 xml 文件实际上包含一个 ID 为 R.id.spinnerExercise1 的微调器?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多