2012-01-12 2 views
2

В моем основном мастере деятельности содержится 10 различных кнопок, которые все называют одной и той же активностью (MapsActivity).Найдите идентификатор кнопки, которая называется намерение/активность? Android

Как узнать идентификатор кнопки, нажатой из MapsActivity? Я попытался отправить его, используя

intent.putExtra ("id", id);

Но этот идентификатор вышел так же, когда нажал любую из кнопок.

Нужно ли создавать отдельные намерения для каждой кнопки, которые вызывают одно и то же действие? Или я могу использовать 1 намерение и просто изменить значение, которое он передает в MapsActivity?

Надеюсь, я достаточно подробно объяснил эту проблему! Благодаря!

+0

Вы используете findViewById (...), чтобы получить кнопку вправо? Параметр, который вы передаете этой функции, - это идентификатор кнопки, не так ли? – kosa

+0

Я использую findViewById (..), чтобы получить кнопку и настроить ее onClickListener, где я создаю намерение. – kmb64

+0

Используете ли вы тот же прослушиватель для нескольких кнопок? Если нет, вы можете жестко закодировать? – kosa

ответ

2

вы говорите, что вы добавляете слушателей к кнопкам в вашем коде с помощью 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"); 
+0

thats it right there – kmb64

+0

@karl рад слышать :) – davogotland

Смежные вопросы