#android #tablelayout #tablerow #focusable
#Android #tablelayout #tablerow #фокусируемый
Вопрос:
У меня есть TableLayout, который можно фокусировать. Я динамически добавляю в TableRows к этому TableLayout.
Хотя я могу заставить TableRow и его содержимое (несколько текстовых представлений) реагировать на события касания, я не могу заставить ни одно из них реагировать на события фокусировки.
Помимо настройки OnFocusChangeListener, есть ли что-нибудь еще, что мне нужно сделать?
TableRow tableRow = new TableRow(this); // "this" is a valid Context...
tableRow.setFocusableInTouchMode(true);
tableLayout.addView(tableRow);
TextView someNameTextView = new TextView(this);
someNameTextView.setText("Foo");
someNameTextView.setFocusableInTouchMode(true);
tableRow.addView(someNameTextView);
tableRow.setOnFocusChangeListener(someRowFocusChangeListener);
someNameTextView.setOnFocusChangeListener(someRowFocusChangeListener);
Ответ №1:
Вы на самом деле вызываете setFocusable
(см. http://developer.android.com/reference/android/view/View.html#setFocusable(boolean) ) на View
s и TableRow
s?
Комментарии:
1. Феми, я сделал. Просто чтобы проверить ситуацию, я изменил экземпляры TextView на экземпляры EditText, и фокус работал просто отлично. Я думаю, может быть, мне нужно отойти от TableLayout и придерживаться ListViews.
Ответ №2:
Я использовал не тот компонент для взаимодействия с пользовательским интерфейсом, который я искал.