На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Hsilgos
  
> Преобразование типов в Android , Как блин это вообще там делается? Да я развращет .Net :)
    Как под андроидом можно преобразовать object в int?

    Так не работает.
    ExpandedWrap disabled
       docId = (Integer)arg0.getTag();


    arg0 Это View. Предварительно в него просто записывается целое число:


    ExpandedWrap disabled
       int docId = 1234;
       SomeView.setTag(docId);


    Нашел один только вариант

    ExpandedWrap disabled
       docId = Integer.parseInt(arg0.getTag().toString());


    Но писать так совесть не позволяет.
      общая цель какая?
        Цитата Felan @
        Так не работает.
        CollapsedWrap disabledLine numbers off

        docId = (Integer)arg0.getTag();


        Должно работать.
          Какую ошибку выдаёт, кстати?

          Попробуй устанавливать так:
          ExpandedWrap disabled
            Integer docId = new Integer(1234);
            SomeView.setTag(docId);
            Цитата Хрен @
            общая цель какая?

            Ну какая может быть общая цель? Получать обратно целое число. В Intent вот есть отдельные методы getInt. А вот у View нету. Как мне в обработчике события обратно получить то, что было передано параметром ранее?

            Цитата mrco @
            Должно работать.

            Но почему-то не работает.


            Цитата Хрен @
            Какую ошибку выдаёт, кстати?

            Сечас под рукой нету, а так не помню. На работу приду, уточню.


            Цитата Хрен @
            Попробуй устанавливать так:

            Ну я вобщем-то просто упростил. Вместо 1234 на самом деле переменная типа int. Ну если быть совсем точным, результат геттера.
              Вот ошибка:
              ExpandedWrap disabled
                        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 @
              Должно работать.

              Действительно вроде работает. Похоже я тогда опечатался.

              А что, нельзя как-то безопасно привести тип? Так что бы елси не приводится то было бы равно значению по умолчанию?
              Т.е. для этого предется все куками писать? Перехватиывать исключения и пр? Готового варианта нет?
                Цитата Felan @
                А что, нельзя как-то безопасно привести тип? Так что бы елси не приводится то было бы равно значению по умолчанию?
                Т.е. для этого предется все куками писать? Перехватиывать исключения и пр? Готового варианта нет?

                Не нельзя, только с обработкой ClassCastException. При правильном проектировании таких ситуаций не должно возникать, поэтому и стандартных средств нет.
                  Цитата mrco @
                  Не нельзя, только с обработкой ClassCastException.

                  Жаль.


                  Цитата mrco @
                  При правильном проектировании таких ситуаций не должно возникать, поэтому и стандартных средств нет.

                  А вот с этого момента по подробнее. Вот есть View. Некое. У которого есть поле Tag c сеттером и геттером вида:
                  ExpandedWrap disabled
                    public void setTag (Object tag)
                    public Object getTag ()


                  Сохраняя туда значение, как при помощи проктирования можно его достать без приведения?
                    Цитата Felan @
                    А вот с этого момента по подробнее. Вот есть View. Некое. У которого есть поле Tag c сеттером и геттером вида:

                    Вот тут и ошибка, вы пытаетесь использовать "некий View" и произвольный объект в качестве тега. Решения:
                    - использовать кастомный вью
                    - убедиться что в качестве тега всегда объекты определенного типа.
                    Цитата Felan @
                    Сохраняя туда значение, как при помощи проктирования можно его достать без приведения?

                    Приведения используються, просто ClassCastExcpetion 100% не должен возникать при правильном проектировании.
                    Сообщение отредактировано: mrco -
                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0331 ]   [ 15 queries used ]   [ Generated: 28.04.24, 12:25 GMT ]