Страница 2 из 14

Re: Урок 21. Создание и вызов Activity

Добавлено: 10 сен 2012, 15:40
AndreyI
У вас свойство у TextView android:layout_height="match_parent" означает, что TextView займет всю высоту экрана, поэтому кнопка не отображается.
измените на android:layout_height="wrap_content"

Re: Урок 21. Создание и вызов Activity

Добавлено: 10 сен 2012, 16:07
AndreyI
dil_android писал(а): понял, что textView сохраняется в классе R, и поэтому может быть вызван.
В R классе сохраняется ID вашего TextView который вы разместили в разметке secondactivity.xml
вы указали для этого - android:id="@+id/textView" где "+" означает, что вы желаете, чтобы ID с именем "textView" создался автоматически, если его не существовало до этого.

Re: Урок 21. Создание и вызов Activity

Добавлено: 10 сен 2012, 16:19
dil_android
Спасибо за совет.
Думаю, что после начального знакомства с Android как таковым, начать работать в Eclips будет намного легче и проще.

А как насчет заданного вопроса, есть какие нибудь предложения? Повторюсь, мне кажется, что разобравшись в этом конкретном примере, я смогу понять некоторые основополагающие вещи.

Re: Урок 21. Создание и вызов Activity

Добавлено: 10 сен 2012, 16:34
dil_android
AndreyI

Спасибо большое. Сегодня смотрел урок 6, так как была догадка что дело в layout. Поэтому и поменял <Linear Layout> на <RelativeLayout>, думая, что кнопка уходит вправо и, поэтому, не видна. Но, одно дело догадываться, а другое дело найти ошибку. Еще раз спасибо. Буду читать дальше и беспокоить людей на форуме своими, может иногда глупыми, вопросами.

Re: Урок 21. Создание и вызов Activity

Добавлено: 30 сен 2012, 19:32
Eshkin-Kat
Изображение
ни у кого не ругается здесь? Пробовал заменить на предложенный onlongclicklistener, но тот же результат.

Re: Урок 21. Создание и вызов Activity

Добавлено: 30 сен 2012, 20:54
powercat
ну если не критично, то просто в xml сделай ему клик, а тут обработай...примерно так:

Код: Выделить всё

public void btnActTwo_Click(View v){.......}

Re: Урок 21. Создание и вызов Activity

Добавлено: 01 окт 2012, 14:05
math64
Нужно выбрать "Let 'MainActivity' implement 'OnClickListener'".
Появится новая ругань, там нужно будет добавить реализацию метода интерфейса.

Re: Урок 21. Создание и вызов Activity

Добавлено: 14 окт 2012, 02:54
brucemax
Подскажите пожалуйста как реализовать вызов активити путём сдвига экрана пальцем?

Re: Урок 21. Создание и вызов Activity

Добавлено: 14 окт 2012, 04:25
KamiSempai
brucemax писал(а):Подскажите пожалуйста как реализовать вызов активити путём сдвига экрана пальцем?
Очевидно, Вам нужен ViewPager. На ХабраХабре была статья по его применению. Или имелось ввиду именно использование жеста для вызова активити?

Re: Урок 21. Создание и вызов Activity

Добавлено: 14 окт 2012, 19:36
brucemax
KamiSempai писал(а):
brucemax писал(а):Подскажите пожалуйста как реализовать вызов активити путём сдвига экрана пальцем?
Очевидно, Вам нужен ViewPager. На ХабраХабре была статья по его применению. Или имелось ввиду именно использование жеста для вызова активити?
Да именно он. Спасибо большое!!! Да на хабре и не одна статья посвящена этому. Из предисловия к одной из них
Горизонтальная прокрутка экранов — удобная и модная вещь. На Хабре уже был топик, посвященный данной теме. Однако использование ViewFlipper не позволяет с легкостью добиться эффекта привязки, когда экраны двигаются вместе с пальцем. Также нужен механизм автоматической доводки экранов в ту или иную сторону. Примера, где это было бы хорошо разъяснено и реализовано, так и не нашел. В комментариях предлагали посмотреть исходники гугловского кода, где это реализовано. Однако удобнее было бы воспользоваться готовым решением. Такой механизм реализован в Android Support Package. Использовать эту библиотеку можно для версий Android 1.6 и старше. Конкретно нам понадобятся классы ViewPager и PagerAdapter.
понял, что для достойного результата целесообразно использовать Android Support Package, коим я сейчас и займусь. Если вдруг кто этим уже занимался и у него есть полезное напутственное слово, просьба не стесняться =)

Re: Урок 21. Создание и вызов Activity

Добавлено: 22 окт 2012, 12:46
dil_android
Здравствуйте,

Возник такой вопрос. Две Activity А и В. Чтобы запустить В, я использую OnItemClickListener и при помощи Intent передаю из А в В значение int position, которое затем использую.
Возникла необходимость вызова метода, относящегося к Activity B из метода в Activity A. Можно ли использовать для этой цели Intent таким образом, чтобы Activity B не загружалась (т.е. без startActivity())?
Я полагаю, что нет, и, поэтому, хочу задать сразу второй вопрос.
Передачу еще одного int значения из А в В, я хочу осуществить вне метода OnItemClickListener и без вызова Activity В, как это можно сделать? Насколько я понял из Интернета, однозначного решения нет, предлагают использовать SharedPreferences. Это кажется странным для одного значения типа int. По моему, в этом качестве, можно использовать get/set. Какое решение выбрать, с тем, чтобы в дальнейшем передача данных между Activity не вызывала проблем?

Спасибо.

Re: Урок 21. Создание и вызов Activity

Добавлено: 22 окт 2012, 13:53
KamiSempai
Если объект класса не создан, в нашем случае это Acivity, вызвать методы этого класса не получится. Однако, если нужный метод оперирует только с параметрами и ни как не использует сам объект, его можно объявить как static и использовать независимо от самого объекта.

Re: Урок 21. Создание и вызов Activity

Добавлено: 22 окт 2012, 14:40
dil_android
KamiSempai, здравствуйте.

Попробовал, создав объект класса Activity B, исполняет нормально.
А я могу создавать объект класса Activity B? Не является ли это bad practice в Андроид программировании ? Где-то читал, что не желательно.
По поводу Intent мои сомнения верны, не так ли?
А вот, что Вы думаете по поводу SharePreferences и get/set?

Спасибо.

Re: Урок 21. Создание и вызов Activity

Добавлено: 22 окт 2012, 15:34
KamiSempai
Создание Activity для вызова метода - это перебор.
И как Вы собираетесь передавать какие либо значения в Активити В без ее создания? Очевидно, Вы не совсем поняли принципы работы с Activity на андроиде.

И еще. Может стоит подумать о создании отдельно класса, если программный код используется более чем в одном объекте?

Re: Урок 21. Создание и вызов Activity

Добавлено: 22 окт 2012, 15:55
dil_android
Речь не идет о создании нового Activity. Есть существующий Activity B в котором исполняемые методы. Так вот, для того, чтобы получить доступ к какому-либо из методов в В, сделать следующее в А: ActivityВ ав = new ActivityВ(); и далее, например, ав.deleteAllItems(); Создать переменную объекта В, в данном случае - это ав, и через нее получить доступ к методам, используемым в В из А.
По поводу Intent мои сомнения верны, не так ли?
А вот, что Вы думаете по поводу SharePreferences и get/set?

Спасибо.

Re: Урок 21. Создание и вызов Activity

Добавлено: 22 окт 2012, 16:06
dil_android
И еще один вопрос, который мне кажется интересен для новичков. Можно ли передавать данные через Intent без явного вызова ActivityB через startActivity(); В моем случае я вызываю ActivityB из метода setOnItemClickListener через Intent. Однако, если я хочу передать, какие-то data из А в В без явного вызова В, как это сделать? Если Intent это сделать не позволяет, то какова существующая практика. Два варианта, которые я смог найти в Интернете, я привел ранее.

Re: Урок 21. Создание и вызов Activity

Добавлено: 22 окт 2012, 17:32
dil_android
Странно, но вызов метода, через переменную объекта тоже дает ошибку. Перепробовал все вышеперечисленные варианты, ни один не срабатывает. А все, что хочу сделать, это удалить список (и таблицу БД) в Activity B, при вызове метода delete в Activity A (чтобы удаление происходило в обоих Activity). Прямой вызов метода не работает, передавать данные через Intent без явного вызова startActivity(ActivityB), в Андроиде тоже не предусмотрено. Так как быть то?

Re: Урок 21. Создание и вызов Activity

Добавлено: 22 окт 2012, 17:55
AndreyI
dil_android писал(а):И еще один вопрос, который мне кажется интересен для новичков. Можно ли передавать данные через Intent без явного вызова ActivityB через startActivity(); В моем случае я вызываю ActivityB из метода setOnItemClickListener через Intent. Однако, если я хочу передать, какие-то data из А в В без явного вызова В, как это сделать? Если Intent это сделать не позволяет, то какова существующая практика. Два варианта, которые я смог найти в Интернете, я привел ранее.
Не совсем понимаю, что вы имеете ввиду под явным и неявными вызовом. Вообще в Андроид под этими понятиями подразумевается обращение непосредственно к классу вызываемого Activity - явный Intent. Второй метод - вызов Activity через Action, тогда система будет подбирать для запуска подходящий Activity через Action Filter или предложит пользователю выбрать, если в системе зарегистрировано несколько фильтров удовлетворяющих требуемому Action - это неявный Intent. И в том и в другом случае в вызываемое Activity можно передавать данные. Смотрите урок 22 там все расписано с иллюстрациями.

Re: Урок 21. Создание и вызов Activity

Добавлено: 22 окт 2012, 18:53
dil_android
Наверное день сегодня такой.
Урок 28. Extras - передаем данные с помощью Intent
Intent intent = new Intent(this, ViewActivity.class);
intent.putExtra("fname", etFName.getText().toString());
intent.putExtra("lname", etLName.getText().toString());
startActivity(intent);
При вызове Intent и передаче данных методом PutExtra обязательно указывать startActivity(intent). Без этого Intent не передает данные с одновременной загрузкой активити. Я хочу передать данные, не загружая активити. Как это сделать?

Re: Урок 21. Создание и вызов Activity

Добавлено: 22 окт 2012, 19:11
AndreyI
Пока вы не вызовете Activity у вас оно не будет создано, как вы собираетесь передавать данные в несуществующее Activity?