вы говорите, что добавляете слушателей к кнопкам в своем коде с помощью findViewById, поэтому я предполагаю, что у вас есть требования, которые означают, что вы не можете создать свой макет в xml. поэтому, когда вы настраиваете свое первое действие, которое содержит все эти кнопки, убедитесь, что все они получают одинаковый приемник щелчков. мы можем вызвать этот метод слушателя mapsButtonListener
. это должно быть объявлено так:
public void mapsButtonListener(View sender) {
int id = sender.getId();
Intent mapsActivity = new Intent(getApplicationContext(), MapsActivity.class);
mapsActivity.putExtra("button_id", id);
startActivity(mapsActivity);
}
об идентификаторе нашей кнопки: s
если вы размещаете свои кнопки с дизайном XML, просто убедитесь, что у них есть идентификаторы, объявленные в XML. однако, если вы не используете для них xml, а вместо этого создаете их экземпляры в коде, то вам придется использовать метод setId(4)
, чтобы дать вашим кнопкам id: s (не давать все они 4 очевидно, хе-хе). это должно быть сделано одновременно с добавлением прослушивателя кликов. Кроме того, убедитесь, что вы знаете, какая кнопка получает какой номер, чтобы вы могли проверить это позже.
получение идентификатора в MapsActivity
как только запустится mapsActiviy, мы захотим этот идентификатор. мы делаем это с помощью следующей строки (внутри класса MapsActivity):
int id = getIntent().getIntExtra("button_id");