Что произойдет, если я использую один и тот же идентификатор для нескольких виджетов в разных макетах?

В настоящее время я стараюсь использовать разные идентификаторы для каждого виджета, но если бы я использовал один и тот же идентификатор для некоторых виджетов в XML-файлах с разным макетом, что бы случилось с моими вызовами findViewById? Он запутается и вернет виджет из неправильного файла макета?

Я спрашиваю, потому что я думал о включении представления (с рядом кнопок) в некоторые другие представления, тогда каждому из этих классов экрана пришлось бы назначить немного другое поведение каждой кнопки на включенном представлении. Но для этого они будут вызывать findViewById с тем же идентификатором. Например, в настоящее время я делаю это в каждом файле:

final ImageButton homeButton = (ImageButton)this.findViewById(R.id.rshome_button);
homeButton.setOnClickListener(new BottomButtonClickListener());

final ImageButton hotButton = (ImageButton)this.findViewById(R.id.rshotlist_button);
hotButton.setOnClickListener(new BottomButtonClickListener());

final ImageButton locButton = (ImageButton)this.findViewById(R.id.rsbot_map);
locButton.setOnClickListener(new BottomButtonClickListener());

final ImageButton sendButton = (ImageButton)this.findViewById(R.id.rssend_button);
sendButton.setOnClickListener(new BottomButtonClickListener());

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

Спасибо

6
задан jamesh 11 November 2010 в 15:32
поделиться