Android 微调器所选项目不响应第二次选择
我有两个纺纱机;一个用于文本选择,另一个用于更改文本颜色。我还有一个全局文本视图,当用户进行选择时,我将所选项目设置为该视图。 当我从颜色微调器中选择字体颜色时,全局文本视图的颜色会像预期的那样发生变化。然后,当我在mt textview微调器中选择另一个textview并选择相同的颜色时,我新选择的文本textview颜色不会改变。很奇怪。但如果我选择的颜色与上次使用的颜色不同,则会更改新选择的textview的颜色。 每次颜色更改后,我都尝试在颜色适配器上调用notifydatachanged(),但没有成功。附近有工作吗? 这是代码Android 微调器所选项目不响应第二次选择,android,android-spinner,Android,Android Spinner,我有两个纺纱机;一个用于文本选择,另一个用于更改文本颜色。我还有一个全局文本视图,当用户进行选择时,我将所选项目设置为该视图。 当我从颜色微调器中选择字体颜色时,全局文本视图的颜色会像预期的那样发生变化。然后,当我在mt textview微调器中选择另一个textview并选择相同的颜色时,我新选择的文本textview颜色不会改变。很奇怪。但如果我选择的颜色与上次使用的颜色不同,则会更改新选择的textview的颜色。 每次颜色更改后,我都尝试在颜色适配器上调用notifydatachange
private void setUpColorSpinner() {
// Create an ArrayAdapter using the string array and a default spinner layout
final ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.font_colors, R.layout.spinner_list_item);
// Specify the layout to use when the list of choices appears
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//Apply the adapter to the spinner
fColorspinner.setAdapter(adapter);
fColorspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long l) {
switch (parent.getSelectedItemPosition()) {
case 0:
//leave it blank to set the color to the default color
setFontColor(ContextCompat.getColor(context, R.color.WHITE));
adapter.notifyDataSetChanged();
break;
case 1:
setFontColor(ContextCompat.getColor(context, R.color.BLACK));
adapter.notifyDataSetChanged();
break;
case 2:
setFontColor(ContextCompat.getColor(context, R.color.WHITE));
adapter.notifyDataSetChanged();
break;
case 3:
setFontColor(ContextCompat.getColor(context, R.color.BLUE));
adapter.notifyDataSetChanged();
break;
case 4:
setFontColor(ContextCompat.getColor(context, R.color.GREEN));
adapter.notifyDataSetChanged();
break;
case 5:
setFontColor(ContextCompat.getColor(context, R.color.Yellow));
adapter.notifyDataSetChanged();
break;
case 6:
setFontColor(ContextCompat.getColor(context, R.color.RED));
adapter.notifyDataSetChanged();
break;
case 7:
setFontColor(ContextCompat.getColor(context, R.color.PURPLE));
adapter.notifyDataSetChanged();
break;
case 8:
setFontColor(ContextCompat.getColor(context, R.color.ORANGE));
adapter.notifyDataSetChanged();
break;
case 9:
setFontColor(ContextCompat.getColor(context, R.color.OLIVE));
adapter.notifyDataSetChanged();
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
}
private void setUpTextViewsSpinner() {
// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> cardtext = ArrayAdapter.createFromResource(this, R.array.textviews,
R.layout.spinner_list_item);
// Specify the layout to use when the list of choices appears
cardtext.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
fTextViewsspinner.setAdapter(cardtext);
final DisplayMetrics tvsmetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(tvsmetrics);
fTextViewsspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
switch (adapterView.getSelectedItemPosition()) {
case 0:
//selectedText.setText("");
break;
case 1:
selectedText = text1;
break;
case 2:
selectedText = text2;
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
}
private void setUpColorSpinner(){
//使用字符串数组和默认微调器布局创建ArrayAdapter
最终的ArrayAdapter=ArrayAdapter.createFromResource(这个,R.array.font\u颜色,R.layout.spinner\u列表项);
//指定显示选项列表时要使用的布局
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
//将适配器应用于微调器
fColorspinner.setAdapter(适配器);
fColorspinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长l){
开关(parent.getSelectedItemPosition()){
案例0:
//保留为空可将颜色设置为默认颜色
setFontColor(ContextCompat.getColor(context,R.color.WHITE));
adapter.notifyDataSetChanged();
打破
案例1:
setFontColor(ContextCompat.getColor(context,R.color.BLACK));
adapter.notifyDataSetChanged();
打破
案例2:
setFontColor(ContextCompat.getColor(context,R.color.WHITE));
adapter.notifyDataSetChanged();
打破
案例3:
setFontColor(ContextCompat.getColor(context,R.color.BLUE));
adapter.notifyDataSetChanged();
打破
案例4:
setFontColor(ContextCompat.getColor(context,R.color.GREEN));
adapter.notifyDataSetChanged();
打破
案例5:
setFontColor(ContextCompat.getColor(context,R.color.Yellow));
adapter.notifyDataSetChanged();
打破
案例6:
setFontColor(ContextCompat.getColor(context,R.color.RED));
adapter.notifyDataSetChanged();
打破
案例7:
setFontColor(ContextCompat.getColor(context,R.color.PURPLE));
adapter.notifyDataSetChanged();
打破
案例8:
setFontColor(ContextCompat.getColor(context,R.color.ORANGE));
adapter.notifyDataSetChanged();
打破
案例9:
setFontColor(ContextCompat.getColor(context,R.color.OLIVE));
adapter.notifyDataSetChanged();
打破
}
}
@凌驾
未选择公共无效(AdapterView AdapterView){
}
});
}
私有void setUpTextViewsSpinner(){
//使用字符串数组和默认微调器布局创建ArrayAdapter
ArrayAdapter cardtext=ArrayAdapter.createFromResource(此,R.array.textviews,
R.布局.微调器(列表项);
//指定显示选项列表时要使用的布局
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
//将适配器应用于微调器
ftextviewspinner.setAdapter(cardtext);
final DisplayMetrics tvsmetrics=新的DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(tvsmetrics);
fTextViewsspinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView AdapterView、View视图、int i、long l){
开关(adapterView.getSelectedItemPosition()){
案例0:
//selectedText.setText(“”);
打破
案例1:
selectedText=text1;
打破
案例2:
selectedText=text2;
打破
}
}
@凌驾
未选择公共无效(AdapterView AdapterView){
}
});
}
根据您的问题,您使用的事件侦听器中一定存在一些问题
您可以尝试将事件监听器切换到符合您要求的事件监听器。根据您的问题,您使用的事件监听器中一定有问题
您可以尝试将事件侦听器切换到或与您的要求匹配的任何一个对象。您可以显示代码吗?哪个类包含这些方法?请用有效的Java语法显示它:
classmyclass{…方法在这里…}
。还有,你什么时候调用这些方法?它们在主活动类中。基本上,你应该向我们展示足够的代码,以便我们可以复制和粘贴它,添加必要的导入,然后自己编译。我的计算机太慢了。我有很多代码要在这里发布。你能帮我吗