У меня есть таблица 'D', в которой каждая строка имеет 4 текстовых изображения. Я установил onlicklistener, и он работает. Я хочу, чтобы пользователь нажимал на любой текстовый вид этой строки, а текстовый фон менялся на ltgray. Я решу, будет ли установлено каждое текстовое представление или вся строка. Прямо сейчас только последнее текстовое изображение устанавливается в ltgray независимо от того, какой пользователь нажимает. Основываясь на коде, мое предположение заключается в том, что я могу установить каждый tv в значение onclick по индексу x в коде: Но это не работает. Не могу я получить доступ к каждому textViewB с помощью x ?. Код показывает, что tvB устанавливается для других ситуаций, но это новая настройка текстового фона всех текстовых просмотров. Я не хочу фона строки. Это легко и работает. но показывают только границы. Моя потребность - это текстовый фон для изменений для всех 4 телевизоров в этой таблице. Спасибо вам заранее:динамически настраиваемый цвет фона текста
try {
for(int x=0 ; x<loopCount; x++){
TableRow.LayoutParams params = new TableRow.LayoutParams(headerCellsWidth[x + 1], LayoutParams.MATCH_PARENT);
params.setMargins(2, 2, 0, 0);
Log.d("Loadrunner", "info[x] " + x + " " + info[x]);
final TextView textViewB = this.bodyTextView(info[x]);
textViewB.setTextColor(0xFF000000);
tableRowForTableD.addView(textViewB, params);
//*************************************** Clickable cell
tableRowForTableD.setClickable(true);
tableRowForTableD.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//tableRowForTableD.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_bright));
textViewB.setBackgroundColor(Color.LTGRAY);
Toast.makeText(getContext(), "Item on aisle select/deselect", Toast.LENGTH_SHORT).show();
}
});
tableRowForTableD.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
//tableRowForTableD.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_bright));
Toast.makeText(getContext(), "Item on aisle Edit", Toast.LENGTH_SHORT).show();
return true;
}
});
//***************************************************************
}
} catch(Exception e){
e.printStackTrace();
}
Это все сделано в коде. Нет xml или стилей.
Проблема в следующем: вы устанавливаете OnClickListener в каждом цикле. В представлении может быть только один OnClickListener, поэтому будет работать только последний. Подсказка для решения. Храните массив текстовых просмотров для каждого tableRow, чтобы вы могли перебирать этот массив при щелчке строки – devnull69
@devnull. Только последнее текстовое изображение получает изменение фона. Я действительно не хочу отслеживать и синхронизировать массив. –