我正在使用AutoCompleteTextView
并很好地获得建议,我想禁用我能够执行的位置1的TextView
。
主要问题是我想将位置1的TextView
颜色设置为黑色
我已经设置了它的颜色但是当我滚动建议列表时,所有TextView颜色都变为黑色。
下面是我的代码,我已禁用位置1处的textview。
@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 :(得分:0)
我的ListView有问题,我认为这与你的类似。
我的问题是,当我到达ListView的底部时,'position'(在getView中)的值保持恢复为零;所以当我向上滚动ListView时,我从底部的零开始。
我解决了这个问题,强迫我的'View'为空,在你的情况下是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);
}
答案 1 :(得分: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;
}
如果您有任何疑问,请告诉我。 : - )