Итак, у меня есть экран, на котором есть от 0 до 6 одинаковых компонентов пользовательского интерфейса, включенных через XML.Что-то похожее на это:
<TableRow android:layout_height="150px">
<include android:id="@+id/p1" android:layout_width="fill_parent"
android:layout_height="wrap_content" layout="@layout/numerics_component"
android:onClick="onClick" />
</TableRow>
<TableRow android:layout_height="150px">
<include android:id="@+id/p2" android:layout_width="fill_parent"
android:layout_height="wrap_content" layout="@layout/numerics_component"
android:layout_below="@id/p1" android:onClick="onClick" />
</TableRow>
... и т. Д.
Каждый из включенных в него пользовательских интерфейсов представляет собой набор из нескольких виджетов и пользовательских компонентов, которые я повторно использую.
Я хочу обнаруживать щелчки по компонентам в этих битах, включенных в мою активность, и отвечать соответствующим образом.Проблема в том, что в моем методе onClick, если я следую общему шаблону, я никогда не могу сказать, какое из представлений получило клик:
public void onClick(View view) {
Log.d(loggingName, "Got onClick event on view: " + view);
// Identify the view, and handle appropriately:
switch (view.getId()) {
...
С помощью приведенного выше кода я никогда не могу сказать, какая из 6 копийкомпонент нажал.Должен быть хороший способ сделать это, но я этого не вижу.
Кроме того, я не хочу жестко кодировать повторно используемый компонент в одном действии, потому что я хочу повторно использовать его в нескольких действиях в моем приложении.Так что в идеале я бы мог настроить слушателей в своей деятельности.
Есть идеи, как мне это сделать?
Спасибо!