Android-微调器所选项目不';听众无法察觉
有人能帮我吗 喷丝头2不显示必须使用Toast(代码下方)显示的所选位置 我找不到我的代码有什么问题。非常感谢您的回复。多谢各位Android-微调器所选项目不';听众无法察觉,android,Android,有人能帮我吗 喷丝头2不显示必须使用Toast(代码下方)显示的所选位置 我找不到我的代码有什么问题。非常感谢您的回复。多谢各位 <Spinner android:id="@+id/spinner2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="5.67" android:entries="@array/g
<Spinner
android:id="@+id/spinner2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="5.67"
android:entries="@array/groupLamp />
看起来很奇怪-您的微调器在XML中的1 ID是微调器2
,但在代码中您指的是spnExistLamp
和spnElampWat
。因此,XML和代码之间没有连接。请确保正确链接XML中的视图
android:id=“@+id/spinner2”
xml格式
但是在你的代码中你正在使用
Spinner spinner1 = (Spinner) findViewById(R.id.spnExistLamp);
final Spinner spinner2 = (Spinner) findViewById(R.id.spnElampWat);
请在代码中进行以下更改
final List<String> list2 = new ArrayList<String>();
final ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,list2); //------ line location changed.
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
list2.clear();
if(pos==0){
for(Integer ctr: incandescant){
list2.add(ctr+ " watts");
}
}else if(pos==1){
for(Integer ctr: led){
list2.add(ctr +" watts");
}
}
dataAdapter2.notifyDataSetChanged(); //------- line added
}
public void onNothingSelected(AdapterView<?> parent) {
}
});
final List list2=new ArrayList();
final ArrayAdapter dataAdapter2=新的ArrayAdapter(这是android.R.layout.simple_spinner_项,列表2);//--线路位置已更改。
spinner1.setOnItemSelectedListener(新AdapterView.OnItemSelectedListener()){
已选择公共位置(AdapterView父项、视图、整数位置、长id){
清单2.clear();
如果(位置==0){
用于(整数中心:白炽灯){
清单2.添加(ctr+“瓦特”);
}
}否则如果(位置==1){
用于(整数中心:led){
清单2.添加(ctr+“瓦特”);
}
}
dataAdapter2.notifyDataSetChanged();//----添加了行
}
未选择公共无效(AdapterView父级){
}
});
请确保您的列表2已填充,因为它取决于spinner1项目的选择。您好,谢谢。我更改了值。。喷丝器喷丝器1=(喷丝器)findViewById(R.id.spinner1);最终喷丝器喷丝器2=(喷丝器)findViewById(R.id.spinner2)。。但是Toast仍然没有显示。您没有调用dataAdapter2.notifyDataSetChanged();在你的代码中。当您更改列表的内容时,您需要通知它。我已经粘贴了更改。现在可以工作了。我编辑了上面的代码。我很抱歉,因为我试图更改微调器Id以使其更友好。您是否看到单击微调器2以选择一个选项时的列表?@Micheleasituralist2
为空,请使用list2.addAll(list)
final List<String> list2 = new ArrayList<String>();
final ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,list2); //------ line location changed.
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
list2.clear();
if(pos==0){
for(Integer ctr: incandescant){
list2.add(ctr+ " watts");
}
}else if(pos==1){
for(Integer ctr: led){
list2.add(ctr +" watts");
}
}
dataAdapter2.notifyDataSetChanged(); //------- line added
}
public void onNothingSelected(AdapterView<?> parent) {
}
});