2016-02-17 2 views
2

Я сделал счетчик, и когда на нем есть только один элемент, я хочу отключить его, но мне не нравится серый вид, который получает текст, когда он отключен. Я уже пытался использовать .setClickable(false);, но это не сработало. Я видел много сообщений, с другой стороны, с отключенным с другим, отличным от стандартного, но это мне не помогло.
Мой код прямо сейчас:Как сделать отключенный счетчик не отключенным?

if (list.size() > 1) { 
    list.setlistNumber("Select a list"); 
    list.add(0, list); 
    mListSpinner.setClickable(true); 
    return list; 
} else { 
    mAccountSpinner.setEnabled(false); 
    // mListSpinner.set; 
    t = 1; 

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

ответ

0

Надеюсь, это поможет вам.

В XML

  <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="80dp" 
      android:gravity="center"> 

      <Spinner 
       android:id="@+id/spinner" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_margin="5dp" /> 

      <LinearLayout 
       android:id="@+id/layout" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:background="#00000000" 
       android:clickable="false" 
       android:orientation="vertical" /> 
     </RelativeLayout> 

И В Java:

Это мой код, который я испытал.

List<String> list = new ArrayList<>(); 
    list.add("Please select a item"); 
    list.add("Item1"); 
    list.add("Item2"); 
    list.add("Item3"); 

    LinearLayout layout = (LinearLayout) findViewById(R.id.layout); 

    ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, list); 

    Spinner spinner = (Spinner) findViewById(R.id.spinner); 
    spinner.setAdapter(adapter); 

    if (list.size() > 1) { 
     layout.setClickable(false); 
    } else { 
     layout.setClickable(true); 
    } 
+0

пробовал этот, не работает по умолчанию, как работает счетчик, mak es clickable true, даже если это ложь, (или, по крайней мере, когда я попробовал, это не сработало для меня) – Clow

+0

Я обновил код Java, который я тестировал. См. Выше – Sabari

+0

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

0

Просто удалите слушателя, чтобы не делать ничего, кроме сохранения поведения по умолчанию.

spinner.setOnClickListener(null); 

Если вы хотите включить вертушку снова, просто добавьте еще раз слушателю

spinner.setOnClickListener(myListener); 
+0

Я пробовал это и получил это исключение: java.lang.RuntimeException : Не вызывайте setOnClickListener. Вероятно, вам нужно установить setOnItemClickListener. Я попробовал также с setOnItemClickListener, но получаю это другое исключение: setOnItemClickListener не может использоваться со счетчиком. есть идеи? – Clow

0

Override с настраиваемой стиль фона, без инвалидов Drawable.

<Spinner 
     ... 
     android:background="@drawable/spinner_background" 
     ... 
    /> 

Рез/рисуем/spinner_background.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<!-- changed from apptheme_spinner_disabled_holo_light --> 
<item android:state_enabled="false" 
     android:drawable="@drawable/apptheme_spinner_default_holo_light" /> 
<item android:state_pressed="true" 
     android:drawable="@drawable/apptheme_spinner_pressed_holo_light" /> 
<item android:state_pressed="false" android:state_focused="true" 
     android:drawable="@drawable/apptheme_spinner_focused_holo_light" /> 
<item android:drawable="@drawable/apptheme_spinner_default_holo_light" /> 

В будет зависеть вводимого коэффициента от стиля вашего приложения. Например, вы можете генерировать новые стили для головок here.

Что касается цвета текста, то это должно быть очень похожи, добавив подобный дескриптор XML: -

<Spinner 
     ... 
     android:textColor="@color/spinner_text" 
     ... 
    /> 

Рез/значения/spinner_text.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_focused="true" android:color="@color/black"/> 
    <item android:state_pressed="true" android:state_enabled="false" android:color="@color/black" /> 
    <item android:state_enabled="false" android:color="@color/black" /> 
    <item android:color="@color/black"/> 
</selector> 

даже не уверен, что это вам необходимо установить цвет непосредственно:

 <Spinner 
     ... 
     android:textColor="#000000" 
     ... 
    /> 
+0

Вы можете уточнить это еще?в противном случае я думаю, что это должен быть комментарий, также я не очень хорошо разбираюсь в android, но проблема не в фоновом режиме, а в тексте, это исправить? – Clow

+0

Да, я хотел добавить детали, когда у меня был момент, и этого никогда не было. это должно остановить изменение текста и фона –

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