Как изменить цвет текста на кнопке в BaseAdapter? - PullRequest
0 голосов
/ 31 декабря 2018

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

В данный момент,в методе getView () я проверяю, является ли ответ пустым, если да, я устанавливаю синий цвет по умолчанию, и все в порядке, но я хотел бы различать, когда список полон для определенного списка индекса, скажем, 3,6,7 установить цвет текста, отличный от зеленого, как в текущем примере.

public class GridViewAnswerAdapter extends BaseAdapter {

private List<String> answer;
private Context context;
private MainActivity mainActivity;

public GridViewAnswerAdapter(List<String> answer, Context context, MainActivity mainActivity) {
    this.answer = answer;
    this.context = context;
    this.mainActivity = mainActivity;
}

@Override
public int getCount() {
    return answer.size();
}

@Override
public Object getItem(int position) {
    return answer.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

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

    Button buttonAnswerAdapter = null;

    if (convertView == null) {
        if (answer.get(position).equals(" ")) {

            buttonAnswerAdapter = new Button(context);
            buttonAnswerAdapter.setLayoutParams(new GridView.LayoutParams(100, 100));
            buttonAnswerAdapter.setPadding(8, 8, 8, 8);
            buttonAnswerAdapter.setBackgroundColor(Color.BLUE);

        } else if (mainActivity.listAnswer.get(position).equals(answer.get(position))) {

            //Create new button
            buttonAnswerAdapter = new Button(context);
            buttonAnswerAdapter.setLayoutParams(new GridView.LayoutParams(100, 100));
            buttonAnswerAdapter.setPadding(8, 8, 8, 8);
            buttonAnswerAdapter.setBackgroundColor(Color.BLUE);


            buttonAnswerAdapter.setTextColor(Color.GREEN);

            buttonAnswerAdapter.setText(String.valueOf(answer.get(position)));

        } else {
            buttonAnswerAdapter = (Button) convertView;
        }

    }
    return buttonAnswerAdapter;
}

}

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

Мои неудачные попытки:

открытый класс GridViewAnswerAdapter extends BaseAdapter {

private List<String> answer;
private Context context;
private MainActivity mainActivity;

public GridViewAnswerAdapter(List<String> answer, Context context, MainActivity mainActivity) {
    this.answer = answer;
    this.context = context;
    this.mainActivity = mainActivity;
}

@Override
public int getCount() {
    return answer.size();
}

@Override
public Object getItem(int position) {
    return answer.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

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

    Button buttonAnswerAdapter = null;

    if (convertView == null) {
        if (answer.get(position).equals(" ")) {

            buttonAnswerAdapter = new Button(context);
            buttonAnswerAdapter.setLayoutParams(new GridView.LayoutParams(100, 100));
            buttonAnswerAdapter.setPadding(8, 8, 8, 8);
            buttonAnswerAdapter.setBackgroundColor(Color.BLUE);

        } else if (mainActivity.listAnswer.get(position).equals(answer.get(position))) {

            //Create new button
            buttonAnswerAdapter = new Button(context);
            buttonAnswerAdapter.setLayoutParams(new GridView.LayoutParams(100, 100));
            buttonAnswerAdapter.setPadding(8, 8, 8, 8);
            buttonAnswerAdapter.setBackgroundColor(Color.BLUE);


        buttonAnswerAdapter.setTextColor(Color.GREEN);

            buttonAnswerAdapter.setText(String.valueOf(answer.get(position)));

        }else if(mainActivity.newList.get(position).equals(answer.get(position)))
        {


            //Create new button
            buttonAnswerAdapter = new Button(context);
            buttonAnswerAdapter.setLayoutParams(new GridView.LayoutParams(100, 100));
            buttonAnswerAdapter.setPadding(8, 8, 8, 8);
            buttonAnswerAdapter.setBackgroundColor(Color.BLUE);


            buttonAnswerAdapter.setTextColor(Color.RED);

            buttonAnswerAdapter.setText(String.valueOf(answer.get(position)));

        } else {
            buttonAnswerAdapter = (Button) convertView;
        }

    }
    return buttonAnswerAdapter;
}

}

...