Intereting Posts
Могу ли я аннулировать весь экран при каждом звонке? Загружать активность и / или логотип приложения программно из манифеста Выход из системы Android Android SDK Как сохранить координаты GeoFire вместе с другими элементами в базе данных Firebase? Как получить данные из пользовательского диалогового окна Android: изменение размера только частей изображения с помощью мягкой клавиатуры на экране Чтение андроида jpeg EXIF ​​метаданные из обратного вызова изображения Как мне (вставить) элемент входа в RecyclerView? ADB не удалось запустить, убедитесь, что плагин настроен правильно ClassCastException: android.app.Application Android AlertDialog Box не отображается Студия Android продолжает заменять match_parent с фиксированным значением dp Ошибка: java.lang.UnsatisfiedLinkError с roboelectric и realm Как обойти угол одной стороны textview в android Использование GSON для разбора JSON с динамическим «ключом» и «значением» в android

Возможность добавлять параметры в кнопку xml?

В настоящее время у меня есть активность с некоторыми кнопками.

В моем xml кнопки определяются следующим образом:

<ImageButton (...) android:onClick="GoToPageX"/> 

И у меня в моей деятельности:

 public void GotoPageX() { startActivity(new Intent(this, PageX.class)); finish(); } 

Проблема в том, что у меня есть сотни кнопок и вы не хотите писать

 <ImageButton (...) android:onClick="GoToPage1"/> <ImageButton (...) android:onClick="GoToPage2"/> <ImageButton (...) android:onClick="GoToPage3"/> ... <ImageButton (...) android:onClick="GoToPage100"/> 

И все скрипты.

Я сейчас использую

 public void GotoPage( int i) { startActivity(new Intent(getBaseContext(), activities.get(i))); finish(); } 

И хотел бы дать параметр i из xml, возможно ли это?

Большое спасибо за любую помощь.

Solutions Collecting From Web of "Возможность добавлять параметры в кнопку xml?"

Это невозможно. Однако, возможно, вы можете использовать android:tag чтобы получить свой параметр.

 <ImageButton (...) android:onClick="goToPage" android:tag="25"/> public void goToPage(View v) { String pageNumber = v.getTag().toString(); /* ... */ } 

Если вы создадите элемент макета в xml, вы можете использовать его

 <ImageButton android:id="@+id/some_id_value" /> 

Где some_id_value – это разновидность уникальной строки, которая будет переведена на id, который хранится в R.java (лучше для вас – ничего там не меняйте), чем в коде, вы можете получить этот идентификатор, используя

 R.id.some_id_value 

Немного почитайте, что это действительно основа.

Вы можете установить теги для представления. Теги – это в основном способ просмотра воспоминаний.

XML:

 <ImageButton ...Other Parameters... android:id="@+id/Button2" android:tag="2" android:onClick="GoToPageX"/> <ImageButton ...Other Parameters... android:id="@+id/Button3" android:tag="3" android:onClick="GoToPageX"/> 

Строка android:tag="2" устанавливает значение тега 2 (строковый тип данных) в Button2

Файл Java:

Общий случай:
Внутри функции GoToPageX(View v) используйте v.getTag() чтобы получить значение тега соответствующего представления (из которого когда-либо просматривался метод был вызван).

Ваш случай:
Добавьте метод следующим образом

 public void GoToPageX(View v){ int i = Integer.parseInt(v.getTag()); //parseInt converts string to integer startActivity(new Intent(getBaseContext(), activities.get(i))); finish(); }