所以我有一个应用程序,我有几个下拉旋转器,其中几个我想根据另一个微调器选择的选项更改其选项。我这样做的计划是:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.benhouse.weatherview, PID: 25791
java.lang.UnsupportedOperationException
at java.util.AbstractList.remove(AbstractList.java:638)
at java.util.AbstractList$SimpleListIterator.remove(AbstractList.java:75)
at java.util.AbstractList.removeRange(AbstractList.java:658)
at java.util.AbstractList.clear(AbstractList.java:466)
at android.widget.ArrayAdapter.clear(ArrayAdapter.java:273)
at com.example.benhouse.weatherview.MainActivity$3.onItemSelected(MainActivity.java:102)
at android.widget.AdapterView.fireOnSelected(AdapterView.java:924)
at android.widget.AdapterView.dispatchOnItemSelected(AdapterView.java:913)
at android.widget.AdapterView.-wrap1(AdapterView.java)
at android.widget.AdapterView$SelectionNotifier.run(AdapterView.java:883)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
在spinner的onItemSelected()方法的情况下,该方法指示更改其他微调器的内容。从理论上讲,我的想法是清除第二个微调器(product_adapter),然后使用product_adapter.add(array []将由makeArray()(它返回doc中指定的CharSequences数组)的新数组添加到微调器的适配器中。我]然后调用.notifyDataSetChanged()来形式化它。但是,当它遇到第一行时,应用程序崩溃并产生以下堆栈跟踪:
ArrayAdapter<CharSequence> T_spinnerAdapter = new ArrayAdapter(this, R.layout.support_simple_spinner_dropdown_item, makeArray("GFS"));
Time_spin.setAdapter(T_spinnerAdapter);
为什么我会收到此错误以及如何解决?
编辑:这就是我正在填充我想要改变的微调器的方式:
body {
margin: 40px;
}
.wrapper {
display: grid;
grid-template-columns: 100px 100px 100px;
grid-gap: 10px;
background-color: #fff;
color: #444;
}
.box {
background-color: #444;
color: #fff;
border-radius: 5px;
padding: 20px;
font-size: 150%;
}
.c {
grid-column-start: 2;
grid-column-end: 3;
grid-row-start: 1;
grid-row-end: 2;
}
.d {
grid-column-start: 2;
grid-column-end: 3;
grid-row-start: 2;
grid-row-end: 3;
}
.f {
grid-column-start: 3;
grid-column-end: 4;
grid-row-start: 2;
grid-row-end: 3;
}
.a {
grid-column-start: 1;
grid-column-end: 2;
grid-row-start: 1;
grid-row-end: 2;
}
.b {
grid-column-start: 1;
grid-column-end: 2;
grid-row-start: 2;
grid-row-end: 3;
}
.e {
grid-column-start: 3;
grid-column-end: 4;
grid-row-start: 1;
grid-row-end: 2;
}
编辑2:所以我有点白痴。我试图修改产品微调器而不是时间微调器(预期的微调器),并从values.xml中的数组初始化产品微调器。也许不喜欢自己修改自己。感谢间接帮助,因为它引导我思考和解开我的代码。
答案 0 :(得分:1)
您正在使用不支持删除操作的列表集合。
如果您通过提供项目数组来构建HEAD
:
ArrayAdapter
Actual implementation使用Arrays.asList()
创建固定长度列表修正:
ArrayAdapter (Context context,
int resource,
T[] objects)
这是一个常见的错误。另一个常见错误是提供不可变列表。