как обрабатывать событие клика в каждой ячейке таблицы - PullRequest
5 голосов
/ 05 июля 2011

У меня есть макет таблицы, такой же простой, как этот .

Мне нужно, чтобы конечный пользователь мог щелкнуть каждую ячейку таблицы и что-то сделать в каждой ячейке.

Но, похоже, android макет таблицы поддерживает только строка в зависимости от события щелчка, нет ячейка в зависимости от события щелчка. Как от этого избавиться?

Ответы [ 2 ]

6 голосов
/ 22 августа 2011

Вам нужно обрабатывать события щелчка, используя android:clickable="true" и android:onClick="clickHandlerCell" в вашем файле определения макета XML, в моем случае в LinearLayout.

Чтобы определить, какая ячейка была нажата, вы можете пометить вид каждой ячейки, используя view.setTag(uniqueID) при ее создании. В функции clickHandlerCell используйте view.getTag(), чтобы получить идентификатор вашей ячейки.

2 голосов
/ 05 июля 2011

Попробуйте этот код для клика, в частности Строка таблицы:

TableLayout contact_table = (TableLayout)findViewById(R.id.contact_table);
final View row=contact_table.getChildAt(i);
row.setOnClickListener(new OnClickListener(){

    @Override
    public void onClick(View v){
        // TODO Auto-generated method stub
        row_id=contact_table.indexOfChild(row);
    }
});
...