2013-07-02 6 views
0

У меня есть серия ToggleButtons, которые представляют собой серию тем. При переключении ToggleButton меняет цвет фона, чтобы указать его состояние. Когда в состоянии checked, ToggleButton имеет более темный цвет.Изменить цвет текста прядильника Android при нажатии кнопки

Selected state. enter image description here

прядильщик перекрывает ToggleButton и позволяет пользователю выбрать трудность для этой темы.

Как изменить цвет текста (на белый) Spinner при нажатии ToggleButton? Я думаю, что я могу справиться с изменением переключателя spinner, но я изо всех сил стараюсь изменить способ изменения цвета текста.

+0

имеет вид [на это] (http://stackoverflow.com/a/14833851/2345913) – CRUSADER

+0

@CRUSADER Я знаю, что могу изменить текст spinner text co используя специальный счетчик, но в этом случае мне нужно изменить цвет текста во время выполнения при нажатии кнопки. Я не понимаю, как ответ, который вы связали, поможет решить мою проблему. –

+0

Можете ли вы отправить код ур для выбранной кнопки? –

ответ

1

Пробудите следующий путь.

  1. Создать XML с именем

spinnertext.xml

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/spinnerText" 
    style="?android:attr/spinnerItemStyle" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:paddingBottom="2dp" 
    android:paddingLeft="6dp" 
    android:textColor="#41f2f3" /> 

Теперь в коде.

ArrayAdapter<String> sp_adapter = new ArrayAdapter<String>(this, R.layout.spinnertext, your_array); 

sp.setAdapter(sp_adapter); 

Затем работа с тумблера

ToggleButton tb = (ToggleButton) findViewById(R.id.toggleButton1); 
    tb.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

     @Override 
     public void onCheckedChanged(CompoundButton arg0, boolean isChecked) { 
      TextView tv = (TextView) findViewById(R.id.spinnerText); 
      if (isChecked) 
       tv.setTextColor(Color.RED); 
      else 
       tv.setTextColor(Color.BLUE); 

     } 
    }); 

Reference.

Попробуйте этот путь. Это работает для меня. Надеюсь, это тоже сработает.

+0

спасибо за ваш ответ, это помогло мне добраться на полпути. Я отправлю ответ от того, что я закончил делать как можно скорее. –

1

На Spinner onItemSelected метода вы должны изменить следующим образом:

public void onItemSelected(AdapterView<?> parent, View arg1, int arg2, 
    long arg3) { 
// TODO Auto-generated method stub 

item = (String) parent.getItemAtPosition(arg2); 
((TextView) parent.getChildAt(0)).setTextColor(0x00000000); 



    } 
+0

Простое изменение цвета элемента прядильщика, когда оно выбрано, не решит проблему. То естьесли моя кнопка переключения находится в невыбранном состоянии (на белом фоне), то изменение цвета текста элемента spinner на белый означает, что у меня будет белый текст на белом фоне. –

0

Одна вещь, которую мы имеем на наше приложение представляет собой вид пользовательского вертушка. Он имеет полупрозрачный черный округлый квадрат позади него и немного больше, чем он. Он работает на любом фоне.

0

Ответ от Gunaseelan помог указать мне в правильном направлении. По его словам, работа с ToggleButton - это путь. ToggleButton виджет имеет атрибут XML, который можно использовать, чтобы указать метод запуска, когда ToggleButton переключен/щелкнул (как описано here.

Настройка цвета текста вращателя и селектор вращателя может быть немного трудно . Для того, чтобы изменить цвет текста вертушки:.

ToggleButton cardiologyToggle = (ToggleButton) findViewById(R.id.cardiology_toggle); 
     if (cardiologyToggle.isChecked()) { 
      spinnerText.setTextColor(Color.WHITE); 
     } else { 
      spinnerText.setTextColor(Color.BLACK); 
     } 

Это изменяется только тогда, когда выбрана вертушка текст, отображаемым

Смежные вопросы