我有几个旋转器;一个用于文本选择,另一个用于更改文本颜色。我还有一个全局文本视图,我将所选项目设置为用户进行选择时。 当我从颜色微调器中选择字体颜色时,全局文本视图的颜色会发生变化。然后,当我在mt textview微调器中选择另一个textview并选择相同的颜色时,我的文本新选择的textview颜色不会改变。很奇怪。但是,如果我选择的颜色与上次使用的颜色不同,则会更改我新选择的文本视图的颜色。 我尝试在每次换色后在颜色适配器上调用notifydatachanged(),但这不起作用。有什么工作吗? 这是代码。
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) {
}
});
}
答案 0 :(得分:0)
根据您的问题,您正在使用的事件监听器中必定存在一些问题。
您可以尝试将事件监听器切换到OnItemSelectedListener或OnTouchListener,以符合您的要求。