У меня есть пара прядильщиков; один для выбора текста, а другой - для изменения цвета текста. У меня также есть глобальное текстовое представление, в котором я устанавливаю выбранный элемент, когда пользователь делает выбор. Когда я выбираю цвет шрифта из моего цветного счетчика, цвет глобального текстового изменения изменяется, как и предполагалось. Затем, когда я выбираю другое текстовое изображение в mt textview spinner и выбираю тот же цвет, мой текст, только что выделенный цвет текста не изменяется. Довольно странно. Но если я выбираю другой цвет, чем последний использованный цвет, он меняет цвет моего недавно выбранного текста. Я попытался вызвать notifydatachanged() в адаптере цвета после каждого изменения цвета, но это не сработало. Есть ли какая-нибудь работа? Вот код.Spinner выбранный элемент, не отвечающий на выбор во второй раз
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) {
}
});
}
Вы можете показать код? –
Какой класс содержит эти методы? Пожалуйста, покажите его в действительном синтаксисе Java: 'class MyClass {... methods go here ...}'. Также, когда вы называете эти методы? –
Они находятся в основном классе деятельности. –