Первые 2 числа (66) являются альфа-значением, то есть непрозрачностью. Следующие 6 в шестнадцатеричном формате.

у, чтобы строки представления моего рециркулятора были выделены через определенный интервал времени, скажем, через 2 секунды. Искал по всему интернету, но пока не повезло.

 Reaz Murshed28 сент. 2017 г., 18:49
Пожалуйста, смотрите мой ответ. Это послужит вашей цели.
 Husnain28 сент. 2017 г., 18:44
@ReazMurshed Я хочу, чтобы мои строки подсвечивались один за другим через 2 секунды. В первые 2 секунды выделяется первая строка, затем следующая и последовательность продолжается.
 Reaz Murshed28 сент. 2017 г., 18:11
Вопрос не очень понятен. Вы хотите выделить некоторые конкретные строки в вашемRecyclerView, И вы хотите переключать подсветку каждые два секунды?

Ответы на вопрос(3)

Решение Вопроса

которые я упомянул в комментарии к вопросу.

Вы хотите выделить определенные строки?Вы хотите переключать подсветку каждые две секунды?

Так что я собираюсь найти общее решение для обоих.

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

public class ListItem {
    int value; 
    boolean highlight = false;
}

СписокListItem объект может быть вставлен вArrayList быть заселенным вRecyclerView, Вот ваш адаптер, который может выглядеть следующим образом.

// Declare the yourListItems globally in your Activity
List<ListItem> yourListItems = new ArrayList<ListItem>();
populateYourListItems();

public class YourAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

    public class YourViewHolder extends RecyclerView.ViewHolder {
        private final TextView valueTextView;
        private final LinearLayout background;

        public YourViewHolder(final View itemView) {
            super(itemView);

            valueTextView = (TextView) itemView.findViewById(R.id.value_text_view);
            background = (LinearLayout) itemView.findViewById(R.id.background);
        }

        public void bindView(int pos) {
            int value = yourListItems.get(pos).value;
            boolean isHighlighted = yourListItems.get(pos).hightlight;

            valueTextView.setText(value);

            // Set the background colour if the highlight value is found true.
            if(isHighlighted) background.setBackgroundColor(Color.GREEN); 
            else background.setBackgroundColor(Color.WHITE); 
        }
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_activity_log, parent, false);
        return new YourViewHolder(v);
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
        try {
            if (holder instanceof YourViewHolder) {
                YourViewHolder vh = (YourViewHolder) holder;
                vh.bindView(position);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Override
    public int getItemCount() {
        if (yourListItems == null || yourListItems.isEmpty())
            return 0;
        else
            return yourListItems.size();
    }

    @Override
    public int getItemViewType(int position) {
        return 1;
    }
}

Теперь, когда вы хотите выделить некоторые конкретные элементы вашегоRecyclerView вам нужно просто установитьhighlight значение дляtrue а затем позвонитеnotifyDataSetChanged() внести изменения в силу.

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

// Declare the timer
private Timer highlightTimer;
private TimerTask highlightTimerTask;

highlightTimer = new Timer();
highlightTimerTask = new TimerTask() {
    public void run() {
        highLightTheListItems();
    }
};

highlightTimer.schedule(highlightTimerTask, 2000);

Теперь реализуйте свойhighLightTheListItems функционировать в соответствии с вашими потребностями.

public void highLightTheListItems() {
    // Modify your list items. 
    // Call notifyDataSetChanged in your adapter
    yourAdapter.notifyDataSetChanged();
}

Надеюсь, это поможет. Благодарю.

 Reaz Murshed29 сент. 2017 г., 19:44
Пожалуйста, сделай это в себеonCreate пожалуйста, скажите мне, если у вас есть какие-либо другие проблемы.
 Husnain29 сент. 2017 г., 08:39
Я реализую ваше решение. Подскажите, пожалуйста, где написать код таймера?

чтобы в методе OnBindViewHolder адаптера утилизатора поместить [Handler.postDelayed] (https://developer.android.com/reference/android/os/Handler.html#postDelayed(java.lang.Runnable, долго)) в котором вы устанавливаете конкретное время, когда вы хотите, чтобы элемент изменился.

Внутри бегуна, который вы передаете в обработчик, вы кладетебулев флаг чтобы проверить, будет ли строка иметь другой цвет / поведение + notifyDataSetChanged () в адаптере. (Вам придется изменить ваш объект данных, чтобы разместить эту новую переменную)

вы можете сделать это в вашем listViewAdapter

@Override
public View getView(final int position, View row, ViewGroup parent){
if (row==null){
    row = LayoutInflater.from(getContext()).inflate(mResource, parent, false);
}

if(foo){
    row.setBackgroundColor(getResources().getColor(R.color.translucent_green));
}
else row.setBackgroundColor(Color.TRANSPARENT);

return row;
}

Тогда в colours.xml

<color name="translucent_green">#667cfc00</color>

Первые 2 числа (66) являются альфа-значением, то есть непрозрачностью. Следующие 6 в шестнадцатеричном формате.

Ваш ответ на вопрос