Урок 18. Меняем layoutParams в рабочем приложении
Re: Урок 18. Меняем layoutParams в рабочем приложении
Попробуй такой метод:
класс создать и переопределить метод onMeasure и использовать его в xml-ке
Класс по аналогии с этим в ответе
http://stackoverflow.com/questions/2413 ... iew-square
http://stackoverflow.com/questions/6644 ... -imageview - тут как в xml запихнуть
класс создать и переопределить метод onMeasure и использовать его в xml-ке
Класс по аналогии с этим в ответе
http://stackoverflow.com/questions/2413 ... iew-square
http://stackoverflow.com/questions/6644 ... -imageview - тут как в xml запихнуть
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: Урок 18. Меняем layoutParams в рабочем приложении
Спасибо, попробуем!Foenix писал(а):Попробуй такой метод:
класс создать и переопределить метод onMeasure и использовать его в xml-ке
Класс по аналогии с этим в ответе
http://stackoverflow.com/questions/2413 ... iew-square
http://stackoverflow.com/questions/6644 ... -imageview - тут как в xml запихнуть
Re: Урок 18. Меняем layoutParams в рабочем приложении
Спасибо огромное! Все получилось!Foenix писал(а):Попробуй такой метод:
класс создать и переопределить метод onMeasure и использовать его в xml-ке
Класс по аналогии с этим в ответе
http://stackoverflow.com/questions/2413 ... iew-square
http://stackoverflow.com/questions/6644 ... -imageview - тут как в xml запихнуть
Re: Урок 18. Меняем layoutParams в рабочем приложении
Все равно не понятно.Donart писал(а):Первые сообщения в этой теме отвечают на Ваш вопрос.присоединяюсь, у меня тоже не работает есть убрать эти две строки, казалось бы причем тут они? и где это обсуждалось? я эту тему всю просмотрел, тут нет ответа на этот вопрос
Вот цитата из урока.Есть небольшой нюанс. Как верно заметили в каментах, если просто написать код lParams1.weight = 1, то компонент не изменится. Необходимо дописать код: btn1.requestLayout(). Тогда кнопка прочтет Layout и перерисуется. Этот метод уже вызывается в setText, поэтому мы его здесь явно не вызываем.
Сначала присваивается значение
lParams1 = (LinearLayout.LayoutParams) btn1.getLayoutParams();
Как бы, взяли значения у кнопки и присвоили их к lParams1. Это понятно.
Не понятно то, что при изменении lParams1, обратно не присваиваем значение кнопке, а меняем только текст (хоть SetText и перерисовывает кнопки)...
Получается как-то так:
int a, b = 1;
a = b;
b = b + 2;
и получается что "a" теперь тоже равна 3....
Завтра будет.
Лучше.
Лучше.
Re: Урок 18. Меняем layoutParams в рабочем приложении
ну какое же это int? это Object, и в lParams1 попадает ссылка, а не копируется ваша int
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: Урок 18. Меняем layoutParams в рабочем приложении
Да я это выразил в алегории.Foenix писал(а):ну какое же это int? это Object, и в lParams1 попадает ссылка, а не копируется ваша int
В коде не нашел обратного присваивания из Params1 в btn1. Но оно почему-то работает.
// Помогите, пожалуйста, найти строку в коде, где есть это присваивание.
Завтра будет.
Лучше.
Лучше.
Re: Урок 18. Меняем layoutParams в рабочем приложении
твоя аллегория ни к селу ни к городу
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: Урок 18. Меняем layoutParams в рабочем приложении
Согласен.Foenix писал(а):твоя аллегория ни к селу ни к городу
Значит этот вопрос останется загадкой...
Завтра будет.
Лучше.
Лучше.
Re: Урок 18. Меняем layoutParams в рабочем приложении
та эта отгадка уже написана, ты только почему-то не понял еще
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: Урок 18. Меняем layoutParams в рабочем приложении
Спасибо, конечно, за ответы.
Очень хотелось бы понять...
Не хочется в дальнейшем быть говнокодером и писать рулоны вместо пару строк.
Очень хотелось бы понять...
Не хочется в дальнейшем быть говнокодером и писать рулоны вместо пару строк.
Завтра будет.
Лучше.
Лучше.
Re: Урок 18. Меняем layoutParams в рабочем приложении
дело в том, что тебе нужно учить основы джава, если строчка 3 у тебя отражает суть твоего присутствия в программировании. И даже не java, а ООП вначале.
Так вот. Напиши свой пример только не с простым типом int, а с объектным типом любым.
Суть в том, и она тебя удивит, что особой разницы между
Object o = new(Object);
и
Object o1 = o2;
нету. В первом случае в памяти создается объект типа Object и его ссылка помещается в переменную o.
а во втором объект уже был в памяти и его ссылка попала в переменную o1.
А сама область - она просто есть. Сколько ни присваивай таким образом - объект будет, а ссылок делай хоть миллион. И если ты посредством одной из них будешь менять объект - то если потом воспользуешься другой ссылкой, то обнаружишь эти изменения.
Дальше - больше.. и даже когда ты будешь передавать эти ссылки (а будешь думать, что передаешь значения) в какие-нибудь методы в виде параметров и там менять - то изменятся сами объекты! Это совершенно не копирование типа int в саму переменную, когда переменная содержит ЗНАЧЕНИЕ - число.
Дальше - еще больше и навороченнее эти правила.. там еще строковые объекты есть - с ними тоже особенности..кстати очень интересные.
Я может мутно объясняю, но лучше почитать учебник..
Так вот. Напиши свой пример только не с простым типом int, а с объектным типом любым.
Суть в том, и она тебя удивит, что особой разницы между
Object o = new(Object);
и
Object o1 = o2;
нету. В первом случае в памяти создается объект типа Object и его ссылка помещается в переменную o.
а во втором объект уже был в памяти и его ссылка попала в переменную o1.
А сама область - она просто есть. Сколько ни присваивай таким образом - объект будет, а ссылок делай хоть миллион. И если ты посредством одной из них будешь менять объект - то если потом воспользуешься другой ссылкой, то обнаружишь эти изменения.
Дальше - больше.. и даже когда ты будешь передавать эти ссылки (а будешь думать, что передаешь значения) в какие-нибудь методы в виде параметров и там менять - то изменятся сами объекты! Это совершенно не копирование типа int в саму переменную, когда переменная содержит ЗНАЧЕНИЕ - число.
Дальше - еще больше и навороченнее эти правила.. там еще строковые объекты есть - с ними тоже особенности..кстати очень интересные.
Я может мутно объясняю, но лучше почитать учебник..
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: Урок 18. Меняем layoutParams в рабочем приложении
Спасибо поставила потому, что ты не стал как все прочие возмущаться, что форум гавно и тебе до сих пор не растолковали простой вопрос
а если после моих слов еще и в учебник заглянешь - то вообще красота будет.
Если тебе видео милее, то посмотри в сети видеокурс по java, а потом видеокурс по андроиду от компании специалист. Очень хороший и понятный и от него можно дальше плыть. Сделан по типу записи с офлайн-уроков.
а если после моих слов еще и в учебник заглянешь - то вообще красота будет.
Если тебе видео милее, то посмотри в сети видеокурс по java, а потом видеокурс по андроиду от компании специалист. Очень хороший и понятный и от него можно дальше плыть. Сделан по типу записи с офлайн-уроков.
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: Урок 18. Меняем layoutParams в рабочем приложении
Сразу бы так.Foenix писал(а): ...
В первом случае в памяти создается объект типа Object и его ссылка помещается в переменную o.
...
Для меня всегда укзатели имели такой синтаксис void *variable;
Спасибо!
PS
Начал, еще давно читать Философия Java, но закинул... На досуге возобновлю.
Завтра будет.
Лучше.
Лучше.
Re: Урок 18. Меняем layoutParams в рабочем приложении
сразу-то сразу, но моих слов мало
философия java вроде сложная книжка
философия java вроде сложная книжка
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
-
- Сообщения: 7
- Зарегистрирован: 03 сен 2014, 11:51
Re: Урок 18. Меняем layoutParams в рабочем приложении
Всем привет! Есть такая проблема. Написал по тесту прогу которая при изменении seek bar меняет кнопки. Но есть ошибка. Выкладываю интересующий код.
Ниже создаю интерфейс обработчика.
Ниже привязываю обработчки к seekBar.
Пишет следующую ошибку.
**SeekBarChange cannot be resolved to a variable** Почему? вроде бы все правильно сделал? где ошибка ребята? Не люблю в голове присваивать implements OnSeekBarChangeListener, больше понравился метод через создание отдельного интерфейса.
Код: Выделить всё
sBar = (SeekBar) findViewById(R.id.seekBar1); - создают объект sBar
Ниже создаю интерфейс обработчика.
Код: Выделить всё
OnSeekBarChangeListener SeekBarChange = new OnSeekBarChangeListener(){
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
Сдесб какой то код
}
Код: Выделить всё
sBar.setOnSeekBarChangeListener(SeekBarChange);
**SeekBarChange cannot be resolved to a variable** Почему? вроде бы все правильно сделал? где ошибка ребята? Не люблю в голове присваивать implements OnSeekBarChangeListener, больше понравился метод через создание отдельного интерфейса.
Re: Урок 18. Меняем layoutParams в рабочем приложении
Ругается наKamiSempai писал(а):При изменении положения ползунка, отрабатывает один и тот же код.
Вы написали:Следовательно присвоили одно и то-же событие на перетаскивание ползунка.Код: Выделить всё
sbWeight.setOnSeekBarChangeListener(this); sb2Weight.setOnSeekBarChangeListener(this);
Что-бы обработчик события отделял один ползунок от другого, в процедуре onProgressChanged Вам стоит определить какой именно объект вызвал событие, sbWeight или sb2Weight. Ссылка на этот объект сидит в параметре seekBar.PS: На сколько я понял, у Вас совершенно нет опыта объектно ориентированного программирования. Я бы посоветовал Вам, для начала, прочитать хотя-бы одну книгу по Java программированию. Например, "Философия Java" Эккеля- очень хорошая книга.Код: Выделить всё
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { int leftValue = progress; int rightValue = seekBar.getMax() - progress; switch(seekBar) { case sbWeight: lParams1.weight = leftValue; lParams2.weight = rightValue; btn1.setText(String.valueOf(leftValue)); btn2.setText(String.valueOf(rightValue)); break; case sb2Weight: Params3.weight = leftValue; Params4.weight = rightValue; btn3.setText(String.valueOf(leftValue)); btn4.setText(String.valueOf(rightValue)); break; } }
switch (seekBar){
case sbWeight:
Пишет: "Constant expression required".
Сделал так:
switch (seekBar.getId()){
case R.id.sbWeight:
Не ругается... Или это и подразумевалось?
Re: Урок 18. Меняем layoutParams в рабочем приложении
посмотри справку по java по этому оператору и не задавай такие вопросы, а то слишком уж стыдно
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: Урок 18. Меняем layoutParams в рабочем приложении
Везде примеры типа:Foenix писал(а):посмотри справку по java по этому оператору и не задавай такие вопросы, а то слишком уж стыдно
switch(i)
case 1:
case 2:
case 3:
и
switch (выражение)
case значение1:
case значение2:
case значениеN:
В Вашем коде прописано:
switch(seekBar)
case sbWeight:
case sb2Weight:
Прописываю также - ругается. Сделал через .getId() как это было показано в ранних уроках для кнопок - заработало.
Решил спросить в чем же дело, получил ответ : "не задавай такие вопросы, а то слишком уж стыдно".
А для чего тогда форум? Чтобы тех, кто спрашивал, стыдили?
Re: Урок 18. Меняем layoutParams в рабочем приложении
Согласно Вашему коду в значение case нужно прописывать sbWeight, т.к. это SeekBar, который требуется, т.к. он стоит входным параметром метода onProgressChanged, но sbWeight подчеркивается "Constant expression required".Foenix писал(а):посмотри справку по java по этому оператору и не задавай такие вопросы, а то слишком уж стыдно
Попробовал использовать метод getId() и искал в константах как это было показано в предыдущих уроках и программа заработала.
К тому же switch требует byte, short, char, int, а Вы в своем коде, которому я следовал, вписали объект seekBar.
Я так понял, Вы и сами не знаете ответ...
Re: Урок 18. Меняем layoutParams в рабочем приложении
Влияние происходит не на кнопку, а на lParams1, кнопке же присваиваются параметры lParams1.deleted писал(а):Что-то я не пойму, почему в lParams1=(LinearLayout.LayoutParams) btn1.getLayoutParams(); lParams всегда будет влиять на кнопку? Он же один раз при создании активити присвоился и все. Как мы можем потом менять( lParams1.weight=leftValue;) Layout-параметры btn1 через него?
Раньше lParams1 был, например, leftValue, кнопка так и отображалась, а после сказали, что lParams1 rightValue, а т.к. кнопка берет параметры из lParams1, вот она и меняется.