В моем XML у меня есть TableLayout с только 1 TableRow, то есть заголовок. В других строках я добавляю динамически установку BackgroundColor (LTGray) для TableRow & TextColor для TextViews в нем. Я также обрабатываю событие click для каждой строки.Android: запрос относительно выбора TableRow
private void createView(TableRow tr, TextView tv, String data, int rowId) {
tv.setText(data);
//tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
tv.setTextColor(Color.BLACK);
tv.setPadding(20, 0, 0, 0);
tr.setPadding(0, 1, 0, 1);
tr.setBackgroundColor(Color.LTGRAY);
tr.setId(rowId);
tr.setClickable(true);
tr.setOnClickListener(this);
tr.addView(tv);
}
выбор Reg: Я хочу изменить BackgroundColor из TableRow позволяет сказать, что желтый цвет. Поэтому, если выбрана 1-я строка, bgColor должен быть желтым. Затем, если выбрана 3-я строка, цвет первой строки должен перейти в LTGray.
И если щелкнуто нигде из строк, выбранная строка (если вообще) также должна быть отменена. Для этого я должен добавить основной макет clickListener ИЛИ сделать выбор строки еще раз, и он не выбран?
Может выбрать селектор (отображаемый список состояний) для обоих способов или я должен обращаться с ним программно. Какой тип Drawable следует использовать для setBackgroundDrawable в моем Java-коде, чтобы вывести его из списка стилей?
Я считаю, что другие компоненты для TableRow также onClick также позаботятся о onTouch. Пожалуйста, поправьте меня, если я ошибаюсь. Поскольку вы хотите обрабатывать одну и ту же функцию, касаясь строки.
Каков наилучший способ для достижения цели? Любая помощь высоко ценится.
@Gangus, но как настроить селектор в моем java-коде динамически. Я имею в виду, что мне нужно установить метод, называемый «R .....». Я не могу определить, какой метод использовать, чтобы установить его для моего TableRow. – Tvd
Ссылка добавлена в ответ. – Gangnus
@Gangus, я использовал вышеупомянутый xml-код и добавил setBackgroundDrawable() в свой TableRow. РЕЗУЛЬТАТ: Когда я нажимаю на него, он просто мигает желтым цветом, а затем переходит в нормальное состояние, и тогда событие onclick поймано там, где состояние строки: ROW CLICKED CAUGHT - Selected: false Pressed: true Focused: false Почему желтый цвет не сохраняется? – Tvd