Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[34.239.150.167] |
|
Сообщ.
#1
,
|
|
|
Как под андроидом можно преобразовать object в int?
Так не работает. docId = (Integer)arg0.getTag(); arg0 Это View. Предварительно в него просто записывается целое число: int docId = 1234; SomeView.setTag(docId); Нашел один только вариант docId = Integer.parseInt(arg0.getTag().toString()); Но писать так совесть не позволяет. |
Сообщ.
#2
,
|
|
|
общая цель какая?
|
Сообщ.
#3
,
|
|
|
Цитата Felan @ Так не работает. CollapsedWrap disabledLine numbers off docId = (Integer)arg0.getTag(); Должно работать. |
Сообщ.
#4
,
|
|
|
Какую ошибку выдаёт, кстати?
Попробуй устанавливать так: Integer docId = new Integer(1234); SomeView.setTag(docId); |
Сообщ.
#5
,
|
|
|
Цитата Хрен @ общая цель какая? Ну какая может быть общая цель? Получать обратно целое число. В Intent вот есть отдельные методы getInt. А вот у View нету. Как мне в обработчике события обратно получить то, что было передано параметром ранее? Цитата mrco @ Должно работать. Но почему-то не работает. Цитата Хрен @ Какую ошибку выдаёт, кстати? Сечас под рукой нету, а так не помню. На работу приду, уточню. Цитата Хрен @ Попробуй устанавливать так: Ну я вобщем-то просто упростил. Вместо 1234 на самом деле переменная типа int. Ну если быть совсем точным, результат геттера. |
Сообщ.
#6
,
|
|
|
Вот ошибка:
videoHelpButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { int docId = (int)arg0.getTag(); VideoHelpUtils.Activate(getContext(), docId); } }); Говорит "Cannot cast from Object to int". Цитата mrco @ Должно работать. Действительно вроде работает. Похоже я тогда опечатался. А что, нельзя как-то безопасно привести тип? Так что бы елси не приводится то было бы равно значению по умолчанию? Т.е. для этого предется все куками писать? Перехватиывать исключения и пр? Готового варианта нет? |
Сообщ.
#7
,
|
|
|
Цитата Felan @ А что, нельзя как-то безопасно привести тип? Так что бы елси не приводится то было бы равно значению по умолчанию? Т.е. для этого предется все куками писать? Перехватиывать исключения и пр? Готового варианта нет? Не нельзя, только с обработкой ClassCastException. При правильном проектировании таких ситуаций не должно возникать, поэтому и стандартных средств нет. |
Сообщ.
#8
,
|
|
|
Цитата mrco @ Не нельзя, только с обработкой ClassCastException. Жаль. Цитата mrco @ При правильном проектировании таких ситуаций не должно возникать, поэтому и стандартных средств нет. А вот с этого момента по подробнее. Вот есть View. Некое. У которого есть поле Tag c сеттером и геттером вида: public void setTag (Object tag) public Object getTag () Сохраняя туда значение, как при помощи проктирования можно его достать без приведения? |
Сообщ.
#9
,
|
|
|
Цитата Felan @ А вот с этого момента по подробнее. Вот есть View. Некое. У которого есть поле Tag c сеттером и геттером вида: Вот тут и ошибка, вы пытаетесь использовать "некий View" и произвольный объект в качестве тега. Решения: - использовать кастомный вью - убедиться что в качестве тега всегда объекты определенного типа. Цитата Felan @ Сохраняя туда значение, как при помощи проктирования можно его достать без приведения? Приведения используються, просто ClassCastExcpetion 100% не должен возникать при правильном проектировании. |