2013-09-06 2 views
0

Я использую AutoCompleteTextView и получаю предложения хорошо, я хочу отключить TextView в позиции 1, которую я могу сделать.Изменение цвета определенного элемента в AutoCompleteTextView

Основная проблема - установить цвет TextView в положение 1 до черного.
Я установил его цвет, но когда я просматриваю список предложений, весь цвет TextView получает изменения в черном.

ниже мой код, где я отключил TextView присутствует в положении 1.

@Override 
    public boolean isEnabled(int position) { 
     // TODO Auto-generated method stub 
     if(getItem(position).contains("Or, did you mean")) 
      return false; 
     else 
     return super.isEnabled(position); 
    } 

@Override 
    public View getView(int position, View v, ViewGroup parent) 
    { 
     View mView = v ; 
     if(mView == null){ 
      LayoutInflater vi = (LayoutInflater)appContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      mView = vi.inflate(id, null); 
     } 

     TextView text = (TextView) mView.findViewById(R.id.textview); 


     if(getItem(position) != null) 
     { 
      text.setTypeface(faceBold); 
      if(getItem(position).equals("Or, did you mean...")) 
      { 
       text.setTextColor(R.color.black); 
       text.setText("Or, did you mean"); 

      } 
      else 
      { 
       text.setText(getItem(position)); 
      }     
     } 

     return mView; 
    } 

ответ

0

см мой ответ here

Здесь я повторяю свой ответ.

использовать следующий код, чтобы изменить цвет фона выпадающего списка, как

autocomplete.setDropDownBackgroundResource(R.color.autocompletet_background_color); 

и вы можете установить значение, как это в string.xml

<color name="autocompletet_background_color">#EFEFEF</color>  

Если вы хотите изменить цвет текста ниспадающего элемента затем делай, как следующий.

в классе адаптера.

@Override 
public View getView(int position, View v, ViewGroup parent) 
{ 
View mView = v ; 
if(mView == null){ 
    LayoutInflater vi = (LayoutInflater)appContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    mView = vi.inflate(id, null); 
} 
TextView text = (TextView) mView.findViewById(R.id.textview);   
if(getItem(position) != null) 
{ 
    text.setTypeface(faceBold); 
    if(getItem(position).equals("check some condition if you want. ")) 
    { 
     text.setTextColor(Color.parseColor("#999999")); 
     text.setText("set some text");    
    }   
    else 
    { 
     text.setTextColor(Color.parseColor("#cc3333")); 
      text.setText(getItem(position)); 
    }   
} 
return mView; 

}
Позвольте мне знать, если у вас есть какие-либо вопросы. :-)

0

У меня была проблема с моим ListView, который я считаю, похож на ваш.

Моя проблема заключалась в том, что значение «position» (внутри getView) продолжало возвращаться к нулю, когда я достиг нижней части ListView; поэтому, когда я прокручивал резервную копию ListView, я начинал с нуля внизу.

У меня возникла проблема, заставив мой «Вид» нулевым, в вашем случае mView.

public View getView(int position, View convertView, ViewGroup parent) { 

     mView = null; 

     if (convertView == null) { 
      LayoutInflater vi = (LayoutInflater)appContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      mView = vi.inflate(id, null); 
     } 
     return mView; 
    } 

Или, возможно, если вы знаете значение, что первый TextView будет вы могли бы сделать:

final String viewTitleText = ((TextView)mView.findViewById(R.id.textview)).getText().toString(); 

    if(viewTitleText=="owen") { 
     mView.setBackgroundColor(Color.BLACK); 
    } else { 
     mView.setBackgroundColor(Color.GREEN); 
    } 
Смежные вопросы