Внутри моей деятельности Я начинаю простой диалог.android | multiple onclicklistener в диалоговом окне
final Dialog myDialog = new Dialog(this);
myDialog.setContentView(R.layout.testing);
...
Мой testing.xml Макет состоит из ничего, кроме 10 ImageViews, id`s являются '1' до '10'.
Я хочу, чтобы каждый ImageView был доступен для клики и что-то делать. Определить метод onclick() в файле .xml не работает, так как метод не может быть найден при просмотре диалога.
Единственный способ, которым я получил его работы заключается в следующем: определить 10 OnClick-слушателей:
ImageView img_1 = (ImageView) myDialog.findViewById(R.id.1);
ImageView img_2 = (ImageView) myDialog.findViewById(R.id.2);
...
img_1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
execute_funtion(1);
myDialog.cancel();
}
});
img_2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
execute_funtion(2);
myDialog.cancel();
}
});
...
Однако, это действительно плохой код, у меня есть 10 раз почти одни и те же линии.
Итак, мой вопрос: как я могу сделать эту работу с чистым кодом? Я подумал о множественном onclicklistener (переопределите функцию onClick() и сделаю переключатель/случай в функциях или что-то в этом роде), но он не работает.
Я рад каждой идее! Благодаря
/EDIT
Вот фрагмент из файла .xml
<ImageView
android:id="@+id/1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="2dp"
android:onClick="myFunction"
android:src="@drawable/ic_launcher" />
, что вы имеете в виду ** определить OnClick() Methode в .xml **. опубликуйте этот .xml файл, также – CRUSADER
Я добавил его, спасибо, что привлек внимание! При нажатии на изображение «myFunction()» не может быть найдено. – user1885484
Используйте корпус переключателя, как вы уже упоминали 'переписываете функцию onClick() и делаете переключатель/регистр в функциях или что-то в этом роде'. Но сначала переименуйте свои идентификаторы. Нельзя использовать числовой идентификатор, вместо этого используйте img1, img2. – andrew