Google Android - это несложно

Добро пожаловать на форум сайта startandroid.ru
Текущее время: 25 фев 2017, 03:58

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 59 ]  На страницу 1, 2, 3  След.
Автор Сообщение
СообщениеДобавлено: 31 окт 2011, 04:00 
Администратор
Аватар пользователя

Зарегистрирован: 07 янв 2012, 12:32
Сообщений: 1319
Благодарил (а): 0 раз.
Поблагодарили: 69 раз.
В этом уроке:

- вызываем Activity с возвратом результата

Click here to read this article!

_________________
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение


Последний раз редактировалось damager82 21 сен 2016, 18:36, всего редактировалось 6 раз(а).

Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 12 янв 2012, 21:58 

Зарегистрирован: 12 янв 2012, 03:46
Сообщений: 6
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Привет всем.
Опять есть проблемка с проверкой на отсутствие данных.
простая конструкция, почему-то, не работает
if (data == null) {return;}
попробовал из 19 урока
if (TextUtils.isEmpty(data.getStringExtra("name")))
tvName.setText("1. Enter your name "+ data.getStringExtra("name"));
else{
String name = data.getStringExtra("name");
tvName.setText("2. Your name is 2 " + name);
}
вроде за работало.
Может есть какой-то более простой метод проверки на отсутствие данных?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 13 янв 2012, 01:43 

Зарегистрирован: 08 янв 2012, 13:26
Сообщений: 10
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Привет. Я пробовал проверять по длине, тоже работает. Если 0 - пусто, в других случаях поле не пустое.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 24 июл 2012, 17:27 

Зарегистрирован: 15 июл 2012, 14:01
Сообщений: 25
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Цитата:
Попробуем подытожить. В MainActivity мы создали Intent с явным указанием на класс NameActivity. Запустили этот Intent с помощью метода startActivityForResult. NameActivity отобразилось, мы ввели имя и нажали кнопку. Создался Intent, в который поместилось введенное нами имя. Метод setResult знает, что Intent надо вернуть в Activity, которое выполнило вызов startActivityForResult, т.е. – MainActivity. В MainActivity за прием результатов с вызванных Activity отвечает метод onActivityResult. В нем мы распаковали Intent и отобразили полученные данные в TextView.


Если есть возможность , не могли бы сделать, схему аналогичной в Уроке 24. Матерьял ясен, но для наглядности было бы просто замечательно! Спасибо.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 24 июл 2012, 18:38 
Администратор
Аватар пользователя

Зарегистрирован: 07 янв 2012, 12:32
Сообщений: 1319
Благодарил (а): 0 раз.
Поблагодарили: 69 раз.
Daniil писал(а):
Если есть возможность , не могли бы сделать, схему аналогичной в Уроке 24. Матерьял ясен, но для наглядности было бы просто замечательно! Спасибо.

Ок, я добавил в конец урока несложную схему.

_________________
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 27 июл 2012, 15:09 

Зарегистрирован: 15 июл 2012, 14:01
Сообщений: 25
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
damager82 писал(а):
Ок, я добавил в конец урока несложную схему.


То что нужно, спасибо.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 29 июл 2012, 21:39 

Зарегистрирован: 16 июл 2012, 16:09
Сообщений: 26
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
А можно ли сразу вызвать Activity для получения результата и просто передать данные с помощью Intent(урок 28).
Делаю так:
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1.           Intent intent;
  2.           intent = new Intent(this, ActivityTwo.class);
  3.           startActivityForResult(intent, B1);
  4.           //отправляю данные (Int)
  5.           intent.putExtra("seek", Count[1]);
  6.  

Принимаю данные:
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1.     Intent intent = getIntent();
  2.     seekbar.setProgress(intent.getIntExtra("seek", 0));
  3.  


Не получается отправить данные, но получить результат удается)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 29 июл 2012, 22:17 
Аватар пользователя

Зарегистрирован: 13 янв 2012, 18:56
Сообщений: 219
Благодарил (а): 3 раз.
Поблагодарили: 6 раз.
Попробуйте так :)
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1.           Intent intent;
  2.           intent = new Intent(this, ActivityTwo.class);
  3.           intent.putExtra("seek", Count[1]);
  4.           startActivityForResult(intent, B1);          
  5.  


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 30 июл 2012, 00:15 

Зарегистрирован: 16 июл 2012, 16:09
Сообщений: 26
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
спасибо заработало)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 30 июл 2012, 01:36 
Аватар пользователя

Зарегистрирован: 13 янв 2012, 18:56
Сообщений: 219
Благодарил (а): 3 раз.
Поблагодарили: 6 раз.
вы поняли почему?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 02 авг 2012, 15:25 

Зарегистрирован: 30 янв 2012, 22:15
Сообщений: 21
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Slavko писал(а):
Привет всем.
Опять есть проблемка с проверкой на отсутствие данных.
простая конструкция, почему-то, не работает
if (data == null) {return;}
попробовал из 19 урока
if (TextUtils.isEmpty(data.getStringExtra("name")))
tvName.setText("1. Enter your name "+ data.getStringExtra("name"));
else{
String name = data.getStringExtra("name");
tvName.setText("2. Your name is 2 " + name);
}
вроде за работало.
Может есть какой-то более простой метод проверки на отсутствие данных?

Давно уже спрашивали, может где-то и ответили, но может кому-то пригодиться.
У String есть метод equals().
public boolean equals (Object object)

Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. String a;
  2. String b;
  3. String c;
  4.         if (a.equals(b)){     //если проверять отсутствие данных, то вместо b ставим "" (пустые кавычки без пробела)
  5.                 c= "a = b";
  6.         }else{
  7.                 c="a != b";
  8.         }
  9.  


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 02 авг 2012, 15:52 

Зарегистрирован: 16 июл 2012, 08:47
Сообщений: 235
Благодарил (а): 0 раз.
Поблагодарили: 25 раз.
Jack_killer писал(а):
У String есть метод equals().
public boolean equals (Object object)

Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. String a;
  2. String b;
  3. String c;
  4.         if (a.equals(b)){     //если проверять отсутствие данных, то вместо b ставим "" (пустые кавычки без пробела)
  5.                 c= "a = b";
  6.         }else{
  7.                 c="a != b";
  8.         }
  9.  

Если a = null - такая конструкция работать не будет. Чтобы учесть все ньюансы, и есть TextUtils.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: force close
СообщениеДобавлено: 12 окт 2012, 03:08 

Зарегистрирован: 11 окт 2012, 14:53
Сообщений: 2
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Подскажите пожалуйста, в моём приложении при нажатии на кнопку в главном Activity происходит закрытие приложения, как это исправить и причиной какой ошибки это может быть?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: force close
СообщениеДобавлено: 12 окт 2012, 03:13 

Зарегистрирован: 11 окт 2012, 14:53
Сообщений: 2
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Разобрался. Оказывается забыл прописать в манифесте


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 07 ноя 2012, 23:01 
Аватар пользователя

Зарегистрирован: 01 апр 2012, 17:09
Сообщений: 117
Откуда: Минск
Благодарил (а): 11 раз.
Поблагодарили: 5 раз.
Интересность!!! если ставить в манифесте:
Код: [ Загрузить ] [ Скрыть ]
Using Text Syntax Highlighting
  1. <activity
  2.          ....
  3.             android:launchMode="singleInstance"
  4.         ....
  5. </activity>

То срабатывание метода onActivityResult() происходит сразу с открытием этой новой активити, а не после возвращения из неё. (то есть мы не успеваем положить туда данные) Как же долго я искал этому объяснение..


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 08 янв 2013, 17:43 

Зарегистрирован: 05 янв 2013, 20:15
Сообщений: 4
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Здравствуйте!

Почему то никак не получается получить результат, если вызываем через Intent НЕЯВНО - нет нужного конструктора (и методов) для Intent.

можно как то выкрутиться? Т.е. задача - запустить Activity неявно и затем получить из нее результат.

Или придется через сообщения это делать?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 08 янв 2013, 19:59 
Аватар пользователя

Зарегистрирован: 26 июн 2012, 14:22
Сообщений: 3422
Откуда: UA
Благодарил (а): 11 раз.
Поблагодарили: 244 раз.
что значит "не явно"? но в любом случае существуют ивенты и колбек методы, вариантов как реализовать такое куча.

_________________
R.id.team
Политика на форуме запрещена


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 08 янв 2013, 23:13 

Зарегистрирован: 05 янв 2013, 20:15
Сообщений: 4
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
rezak90 писал(а):
что значит "не явно"? но в любом случае существуют ивенты и колбек методы, вариантов как реализовать такое куча.


т.е. при создании Intent писать класс не в явном виде, а в виде Action:

Intent intent = new Intent("org.dexpert.edit_cell");
startActivity(intent);

Общая задумка такая - есть таблица, при даблклике на ячейке создаю Intent и запускаю Activity, а система стандартно сама выдает, мол - "каким Activity хотите редактировать?" и выводит список инсталлированных в нее Activity для редактирования ячеек (по умолчанию инсталлирован простенький редактор, но кто-то потом может захотеть навороченный написать). По окончании основная программа получает отредактированную ячейку.

Т.е. это такая расширяемая программа - без перекомпиляции есть возможность менять поведение... И пока непонятно, как получить данные через запущенный Intent.

Есть еще одно - если ячейка была отредактирована новым редактором, то она и потом должна открываться через новый редактор. Наверное, это как то лучше через уведомления делать? Но вот запустится ли Activity (редактор) по уведомлению, если на тот момент приложение с этим Activity(редактором) не запущено?


Последний раз редактировалось VitalyV 08 янв 2013, 23:38, всего редактировалось 1 раз.

Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 08 янв 2013, 23:25 
Аватар пользователя

Зарегистрирован: 26 июн 2012, 14:22
Сообщений: 3422
Откуда: UA
Благодарил (а): 11 раз.
Поблагодарили: 244 раз.
как я и писал следует попробовать callback или event, если они не проконают то тогда промежуточный транспорт в виде public static переменной или же singlton'a

_________________
R.id.team
Политика на форуме запрещена


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 08 янв 2013, 23:41 

Зарегистрирован: 05 янв 2013, 20:15
Сообщений: 4
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
rezak90 писал(а):
промежуточный транспорт в виде public static переменной или же singlton'a


У меня вызываемая Activity - в другом приложении, и об этом приложении ничего не известно.

Попробую Event...


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 59 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 4 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB