Что такое id для каждого элемента View
Что такое id для каждого элемента View
Код для разбора:
[syntax=java]TextView textView1 = (TextView)findViewById(R.id.textView22);
TextView textView2 = (TextView)findViewById(R.id.textView23);
Log.d(TAG, "-- textView1 -- " + textView1.getId()); // 213.....21
Log.d(TAG, "-- textView2 -- " + textView2.getId()); // 213....22
textView1.setId(50);
textView2.setId(50);
Log.d(TAG, "-- textView1 -- " + textView1.getId()); // -- 50
Log.d(TAG, "-- textView2 -- " + textView2.getId()); // -- 50
textView1.setText("test 34 34 34");[/syntax]
В итоге значение присвоилось только для textView1. Но мы ведь имеем две View c одинаковым id.
Почему для textView2 не произошло присвоение?
[syntax=java]TextView textView1 = (TextView)findViewById(R.id.textView22);
TextView textView2 = (TextView)findViewById(R.id.textView23);
Log.d(TAG, "-- textView1 -- " + textView1.getId()); // 213.....21
Log.d(TAG, "-- textView2 -- " + textView2.getId()); // 213....22
textView1.setId(50);
textView2.setId(50);
Log.d(TAG, "-- textView1 -- " + textView1.getId()); // -- 50
Log.d(TAG, "-- textView2 -- " + textView2.getId()); // -- 50
textView1.setText("test 34 34 34");[/syntax]
В итоге значение присвоилось только для textView1. Но мы ведь имеем две View c одинаковым id.
Почему для textView2 не произошло присвоение?
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.
Свои сообщения можно редактировать - кнопка edit.
Re: Что такое id для каждого элемента View
потому что такого делать нельзя =)
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Что такое id для каждого элемента View
что творят канадцы..
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Что такое id для каждого элемента View
Судя по коду, данный ID не уникальный и я честно говоря не понял нафига он вообще нужен.
[syntax=java5] /**
* Sets the identifier for this view. The identifier does not have to be
* unique in this view's hierarchy. The identifier should be a positive
* number.
*
* @see #NO_ID
* @see #getId()
* @see #findViewById(int)
*
* @param id a number used to identify the view
*
* @attr ref android.R.styleable#View_id
*/
public void setId(int id) {
mID = id;
if (mID == View.NO_ID && mLabelForId != View.NO_ID) {
mID = generateViewId();
}
}[/syntax]
[syntax=java5] /**
* Sets the identifier for this view. The identifier does not have to be
* unique in this view's hierarchy. The identifier should be a positive
* number.
*
* @see #NO_ID
* @see #getId()
* @see #findViewById(int)
*
* @param id a number used to identify the view
*
* @attr ref android.R.styleable#View_id
*/
public void setId(int id) {
mID = id;
if (mID == View.NO_ID && mLabelForId != View.NO_ID) {
mID = generateViewId();
}
}[/syntax]
Re: Что такое id для каждого элемента View
no--
ID - это идентификатор View, поэтому он должен быть уникальный.
К элементам можно обращаться по ID или по наименованию.
rezak90
поэтому я думал получу ошибку или создам группу View-s
А ни то и не другое ни получил.
Когда смотрел проекты после обфускации, там было так
TextView textView1 = (TextView)findViewById(2130151515);
т.е. подставляется ID элемента.
Дополенение:
[syntax=java]switch (item.getItemId()) {
case 50:
Intent i = new Intent(this, ThirdActivity.class);
startActivity(i);
break; [/syntax]
Activity запускается для обоих View у которых ID =50.
ID - это идентификатор View, поэтому он должен быть уникальный.
К элементам можно обращаться по ID или по наименованию.
rezak90
поэтому я думал получу ошибку или создам группу View-s
А ни то и не другое ни получил.
Когда смотрел проекты после обфускации, там было так
TextView textView1 = (TextView)findViewById(2130151515);
т.е. подставляется ID элемента.
Дополенение:
[syntax=java]switch (item.getItemId()) {
case 50:
Intent i = new Intent(this, ThirdActivity.class);
startActivity(i);
break; [/syntax]
Activity запускается для обоих View у которых ID =50.
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.
Свои сообщения можно редактировать - кнопка edit.
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Что такое id для каждого элемента View
Оооох, читай документацию к методу, я же её скопипастил.no--
ID - это идентификатор View, поэтому он должен быть уникальный.
К элементам можно обращаться по ID или по наименованию.
И вообще, когда говорят про ID и про его уникальность, говорят про его область видимости. Где он должен быть по твоему уникальным?
Re: Что такое id для каждого элемента View
В пределах проекта, по моему. Все ID хранятся в R.java
что происходит после выполнения команды textView1.setId(50) ?
я переопределил значение, в области видимости класса, а в пределах проекта старое значение осталось?
что-то не пойму.
что происходит после выполнения команды textView1.setId(50) ?
я переопределил значение, в области видимости класса, а в пределах проекта старое значение осталось?
что-то не пойму.
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.
Свои сообщения можно редактировать - кнопка edit.
Re: Что такое id для каждого элемента View
зачем view менять id?
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Что такое id для каждого элемента View
Ну, к примеру нужно открывать меню откуда угодно (много Activity-s), и чем-угодно.rezak90 писал(а):зачем view менять id?
[syntax=java]menu.setHeaderTitle("Заголовок меню");
menu.add(0, 50, 0, "Наименование 0");
menu.add(0, 51, 0, "Наименование 1");
menu.add(0, 52, 0, "Наименование 2");
menu.add(0, 53, 0, "Наименование 3");
menu.add(0, 54, 0, "Наименование 4");
menu.add(0, 55, 0, "Наименование 5");[/syntax]
Я ведь не знаю названий View заранее. Вот и придумал присвоить ID.
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.
Свои сообщения можно редактировать - кнопка edit.
Re: Что такое id для каждого элемента View
В данном случае вьюшкам можно присваивать tag, и по нему определять что нужно делать. Удобное свойство.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Что такое id для каждого элемента View
textView1.getTag(); // результат =50Foenix писал(а):В данном случае вьюшкам можно присваивать tag, и по нему определять что нужно делать. Удобное свойство.
как теперь запустить контекстное меню для него?
до этого привязывал так: registerForContextMenu(textView1);
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.
Свои сообщения можно редактировать - кнопка edit.
Re: Что такое id для каждого элемента View
да нет, я не для этого пример приводила.
А контекстное меню - вообще устарело и не рекомендуется для использования разработчиками. Я им не пользуюсь.
А контекстное меню - вообще устарело и не рекомендуется для использования разработчиками. Я им не пользуюсь.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Что такое id для каждого элемента View
А какой сегодня тренд в моде, на что обратить внимание?
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.
Свои сообщения можно редактировать - кнопка edit.
Re: Что такое id для каждого элемента View
есть ещё люди которые юзают контекстное меню? оО
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Что такое id для каждого элемента View
последний писк в моде это использовать EditMode (или как его там обзывают) в ActionBartrew писал(а):А какой сегодня тренд в моде, на что обратить внимание?
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
