Nano Hash - криптовалюты, майнинг, программирование

Как установить цвет текста одного текстового представления в списке, а не всех текстовых представлений?

У меня есть текстовые представления в пользовательском списке, я знаю, как установить цвет текста, чтобы все текстовые представления в списке были изменены. Но теперь я просто хочу, чтобы одно из конкретных представлений изменило цвет, скажем, в списке есть 10 элементов, я просто хочу, чтобы второй цвет текстового представления был изменен, а остальные остались прежними. Есть идеи? большое спасибо за всю помощь~

public class CheckWinNoAdapter extends ArrayAdapter<String> {
private final Context context;
private String[] values;



public CheckWinNoAdapter(Context context, String[] values) {
    // TODO Auto-generated constructor stub
    super(context, R.layout.list_draw, values);
    this.context = context;
    this.values = values;

}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater inflater = (LayoutInflater) context
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    View rowView = inflater.inflate(R.layout.list_draw, parent, false);
    TextView textView1 = (TextView) rowView.findViewById(R.id.chk_tv1);


    textView1.setText(values[position]);




}

}

17.07.2012

  • вместо передачи позиции передайте целочисленное значение списка, для которого вы пытаетесь установить цвет текста 17.07.2012

Ответы:


1

В Get View сделайте так:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

View rowView = inflater.inflate(R.layout.list_draw, parent, false);
TextView textView1 = (TextView) rowView.findViewById(R.id.chk_tv1);


textView1.setText(values[position]);

if(Your Condition Goes Here){
textView.setTextColor(Color.RED); // Did you tried this???
}

}
17.07.2012

2

ListView повторно использует свои представления, чтобы избежать пустой траты памяти . Поэтому вместо того, чтобы раздувать новое представление каждый раз, когда вызывается getView, назначьте его прежнему параметру convertView и повторно используйте его. Например, convertView — это представление, которое вы отодвинули от прокрутки. Поэтому, если прокрутка TextView, отодвинутая от прокрутки, совпадает с текстовым представлением с другим цветом, может случиться так, что вы увидите «ваш цвет» в текстовом представлении, в котором вы exepct defaultcolor. Итак, здесь необходимость каждый раз устанавливать getView называется цветом текста.

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


    if (converView == null) {
          LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
          converView  = inflater.inflate(R.layout.list_draw, parent, false);
    }

    TextView textView1 = (TextView) converView.findViewById(R.id.chk_tv1);

    int color = (position == YOUR_POSITION) ? yourcolor : defaultcolor;
    textView1.setTextColor(color);

    textView1.setText(values[position]);

}
17.07.2012
  • ListView повторно использует представление, чтобы избежать утечки. Поэтому вместо того, чтобы раздувать новое представление каждый раз, когда вызывается getView, назначьте его прежнему параметру convertView и повторно используйте его. 17.07.2012
  • Я говорил о том, чтобы добавить описание в ваш ответ, так что это полезно для понимания ОП. В любом случае +1 от меня.. 17.07.2012

  • 3

    Вы можете изменить свой getView на этот.

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    
        View rowView = inflater.inflate(R.layout.list_draw, parent, false);
        TextView textView1 = (TextView) rowView.findViewById(R.id.chk_tv1);
    
        if(position== 2){
            textView1.setColor(Color.White);//or whatever you like
        }
        textView1.setText(values[position]);
    
    
    
    
    }
    

    }

    17.07.2012

    4

    Вместо передачи позиции передайте целочисленное значение списка, для которого вы пытаетесь установить цвет текста как:

    if (position == INT_VALUE)//where INT_VALUE=the position at which u want to setcolor of yours
       textView.setTextColor(color);//which color u want to set 
    else
      textView.setTextColor(defaultcolor);//to remaining texts
    
    17.07.2012
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

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

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..