@brucebanner

Три строчки, которые нуждаются в объяснении!?

Пытаюсь разобраться в этом коде

1- В макете id.seek это SeekBar, а тип указывается к нему как ProgressBar

2- `mProgress instanceof SeekBar` . Здесь (javapd.blogspot.com/2008/05/25-8.html) написано

Оператор instanceof проверяет, совпадает ли класс левого операнда с названием класса, заданного правым операндом или является его подклассом.

т.е. совпадает ли класс `mProgress'a` с классом `SeekBar` или является ли `mProgress` наследником `SeekBar'a` .

Правильно ли я понял? Если правильно, то ведь это `SeekBar` наследуется от `ProgressBar` , значит `instanceOf` вернет `false`. Но программа работает, а значит я не понял.

И чем же всё таки является `mProgress` ,`ProgressBar'ом` или `SeekBar'ом`(по разметке).

3- Здесь вообще не понял.

private ProgressBar mProgress;
    ...
    // 1.тип указывается  ProgressBar, а привязывается к SeekBar???
        mProgress = (ProgressBar) v.findViewById(R.id.seek);
        if (mProgress != null){
            // 2....
            if (mProgress instanceof SeekBar){
                // 3....
                SeekBar seeker = (SeekBar) mProgress;
                seeker.setOnSeekBarChangeListener(seekListener);
            }
            mProgress.setMax(1000);
        }
  • Вопрос задан
  • 316 просмотров
Решения вопроса 1
@onepavel
Консультация и разработка мобильных приложений
В R.id.seek может находится все что угодно отнаследованное от ProgressBar,
Хоть MySuperPerfectProgressBar, но если
if (mProgress instanceof SeekBar)
в mProgress лежит SeekBar или подкласс от него,
то выполнить условие
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы