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

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

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




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

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

- разбираемся, зачем нужны requestCode и resultCode в onActivityResult

Click here to read this article!

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


Последний раз редактировалось damager82 29 апр 2017, 19:02, всего редактировалось 5 раз(а).

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

Зарегистрирован: 14 сен 2012, 13:39
Сообщений: 30
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
хочу добавить кнопку "размер", всё сделал , но почему то в MainActivity выдаёт ошибку при такой записи:
case REQUEST_CODE_SIZE:
int size = data.getIntExtra("size", TextSize.LARGEST);
tvText.setTextSize(size);
break;

подчёркивает getIntExtra красным и всё тут , хотел так же прописать размер текста цифрами , но не тут то было
разясните чайнику как быть .
спасибо


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

Зарегистрирован: 26 июн 2012, 13:22
Сообщений: 3422
Откуда: UA
Благодарил (а): 11 раз.
Поблагодарили: 244 раз.
Fima777 а может хоть расскажите что за ошибка? а то
Цитата:
подчёркивает getIntExtra красным и всё тут
требует телепатических знаний которыми я не обладаю, пока что =)

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


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

Зарегистрирован: 07 янв 2012, 11:32
Сообщений: 1355
Благодарил (а): 0 раз.
Поблагодарили: 72 раз.
Fima777 писал(а):
хочу добавить кнопку "размер", всё сделал , но почему то в MainActivity выдаёт ошибку при такой записи:
case REQUEST_CODE_SIZE:
int size = data.getIntExtra("size", TextSize.LARGEST);
tvText.setTextSize(size);
break;

подчёркивает getIntExtra красным и всё тут , хотел так же прописать размер текста цифрами , но не тут то было
разясните чайнику как быть .
спасибо


Напишите какого типа объекты data и TextSize.LARGEST. Скорей всего пытаетесь передать в метод параметры, которые он принимать не умеет

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


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

Зарегистрирован: 28 май 2012, 00:37
Сообщений: 4
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Fima777 писал(а):
хочу добавить кнопку "размер", всё сделал , но почему то в MainActivity выдаёт ошибку при такой записи:
case REQUEST_CODE_SIZE:
int size = data.getIntExtra("size", TextSize.LARGEST);
tvText.setTextSize(size);
break;

подчёркивает getIntExtra красным и всё тут , хотел так же прописать размер текста цифрами , но не тут то было
разясните чайнику как быть .
спасибо


У меня аналогичная проблема:
Главный Activity

Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. package kz.ranter.teaching.p0301;
  2. import kz.ranter.teaching.R;
  3. import kz.ranter.teaching.Starter;
  4.  
  5. import android.app.Activity;
  6. import android.content.Intent;
  7. import android.graphics.Color;
  8. import android.os.Bundle;
  9. import android.util.Log;
  10. import android.view.View;
  11. import android.view.View.OnClickListener;
  12. import android.widget.Button;
  13. import android.widget.TextView;
  14.  
  15. public class P0301_ActivityResult extends Activity implements OnClickListener{
  16.         TextView tvText;
  17.         Button btnColor, btnAlign;
  18.         final int REQUEST_CODE_COLOR=1, REQUEST_CODE_ALIGN=2;
  19.         @Override
  20.         protected void onCreate(Bundle savedInstanceState) {
  21.                 // TODO Auto-generated method stub
  22.                 super.onCreate(savedInstanceState);
  23.                 setContentView(R.layout.p0301_activity_result);
  24.                
  25.                 tvText          = (TextView)findViewById(R.id.tvText);
  26.                 btnColor        = (Button)findViewById(R.id.btnColor);
  27.                 btnAlign        = (Button)findViewById(R.id.btnAlign);
  28.                
  29.                 btnColor.setOnClickListener(this);
  30.                 btnAlign.setOnClickListener(this);
  31.         }
  32.  
  33.         @Override
  34.         public void onClick(View v) {
  35.                 switch(v.getId()){
  36.                 case R.id.btnColor:
  37.                         Intent i = new Intent(this, ColorActivity.class);
  38.                         startActivityForResult(i, REQUEST_CODE_COLOR);
  39.                        
  40.                 }}
  41.         @Override
  42.         protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  43.                 // TODO Auto-generated method stub
  44.                 if(resultCode == RESULT_OK){
  45.                         switch(requestCode){
  46.                         case REQUEST_CODE_COLOR:
  47.                                 Log.d(Starter.TAG,"Обработка установки текста");
  48.                                 //int color = data.getIntExtra("color",Color.WHITE);
  49.                                 //tvText.setTextColor(color);
  50.                                 break;
  51.                         }}}}

По <Ctrl+Shift+I> выдает data=null
Выбор цвета:
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. package kz.ranter.teaching.p0301;
  2. import kz.ranter.teaching.R;
  3.  
  4. import android.app.Activity;
  5. import android.content.Intent;
  6. import android.graphics.Color;
  7. import android.os.Bundle;
  8. import android.view.View;
  9. import android.view.View.OnClickListener;
  10. import android.widget.Button;
  11.  
  12. public class ColorActivity extends Activity implements OnClickListener{
  13.         Button btnRed, btnGreen, btnBlue;
  14.         @Override
  15.         protected void onCreate(Bundle savedInstanceState) {
  16.                 // TODO Auto-generated method stub
  17.                 super.onCreate(savedInstanceState);
  18.                 setContentView(R.layout.color);
  19.                
  20.                 btnRed          = (Button)findViewById(R.id.btnRed);
  21.                 btnGreen        = (Button)findViewById(R.id.btnGreen);
  22.                 btnBlue         = (Button)findViewById(R.id.btnBlue);
  23.                
  24.                 btnRed.setOnClickListener(this);
  25.                 btnGreen.setOnClickListener(this);
  26.                 btnBlue.setOnClickListener(this);
  27.         }
  28.         @Override
  29.         public void onClick(View v) {
  30.                 // TODO Auto-generated method stub
  31.                 Intent intent = new Intent();
  32.                
  33.                 switch(v.getId()){
  34.                 case R.id.btnRed:
  35.                         intent.putExtra("color", Color.RED);
  36.                         break;
  37.                 case R.id.btnGreen:
  38.                         intent.putExtra("color", Color.GREEN);
  39.                         break;
  40.                 case R.id.btnBlue:
  41.                         intent.putExtra("color", Color.BLUE);
  42.                         break;
  43.                 }
  44.                 setResult(RESULT_OK);
  45.                 finish();
  46.         }
  47. }

Видимо я что то упустил,


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

Зарегистрирован: 28 май 2012, 00:37
Сообщений: 4
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Вопрос снят :)
Вот до чего копипаст доводит :)
setResult оказывается перегруженный метод. с двумя формами:
setResult(int) и setResult(int, Intent)
Звиняйте за длинный пост :)


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

Зарегистрирован: 29 ноя 2012, 17:20
Сообщений: 5
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Народ помогите, либо лыжи не едут либо я ...... :shock:
суть проблемы: делаю свой проект и наткнулся на странную вещь onActivityResult вызывается сразу после startActivityForResult еще до закрытия дочерней активити и после закрытия дочерней активити больше не вызывается, соответственно никаких результатов от дочерней активити я не получаю. Думал намудрил что-то в своем коде, зашел сюда, взял этот урок, создал новый проект запускаю и ..., после нажатия кнопки Color или Alignment всплывает тоаст Wrong result, хотя я еще никаких кнопок на дочерней активити не нажимал и соответственно после нажатия и закрытия дочерней активити ни цвет ни выравнивание ни изменяются, та же история что и у меня в проекте onActivityResult вызывается сразу после startActivityForResult. Что интересно такое и на планшете и на эмуляторе.

Что это может быть и как от этого лечится?


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

Зарегистрирован: 29 ноя 2012, 17:20
Сообщений: 5
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Всем спасибо:D , проблема решена.

В файле манифеста нужно изменить режим запуска активити на

android:launchMode="standard"

вместо

android:launchMode="singleTask"

источник: http://stackoverflow.com/questions/6539 ... second-act


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

Зарегистрирован: 14 май 2012, 16:18
Сообщений: 372
Благодарил (а): 0 раз.
Поблагодарили: 6 раз.
Я кстати, так и подумал, что что-то с этим связано, но обычно такой проблемы ни у кого не возникает т.к. по умолчанию android:launchMode всегда "standard", если кто-то его поставил "singleTask" значит знал что делал :)


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

Зарегистрирован: 29 ноя 2012, 17:20
Сообщений: 5
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
У меня оно почему-то ставится по умолчанию, я даже когда создал новый проект по этому примеру, там тоже стало по умолчанию "singleTask", поэтому пример и не работал, может это где-то в настройках эклипса выставляется?


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

Зарегистрирован: 14 май 2012, 16:18
Сообщений: 372
Благодарил (а): 0 раз.
Поблагодарили: 6 раз.
Вообще-то все шаблоны находятся в папке \android-sdk\tools\templates из них и строится все при создании новых проектов и компонентов приложения.
У меня в шаблонах манифеста нет указаний для android:launchMode и этот атрибут никак не определен.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 05 дек 2012, 11:26 

Зарегистрирован: 29 ноя 2012, 17:20
Сообщений: 5
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
И снова я :(
опять проблема с данным методом, вчера весь день писал проект, проверял все на эмуляторе, все прекрасно работало, вечером решил скинуть на планшет и при закрытии дочернего активити стала вылетать ошибка, методом исключений нашел что вылетает именно при вызове finish().
На эмуляторе все работает, не пойму как такое может быть и как теперь отловить что за ошибка, так как в логах эмулятора все красиво, а планшет ничего кроме стандартной фразы о неожиданной остановке не выдаёт :(.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 05 дек 2012, 15:54 

Зарегистрирован: 29 ноя 2012, 17:20
Сообщений: 5
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Проблема решилась при помощи данного метода: http://androidmarket.ru/?page_id=6383
проблема была в закрытом курсоре, но все равно не понятно почему эта ошибка не проявлялась на эмуляторе :evil:


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 10 дек 2012, 22:19 

Зарегистрирован: 06 дек 2012, 19:28
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Здравствуйте, я одно не понял, почему Color.WHITE и Gravity.LEFT а не другие?

Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1.    switch (requestCode) {
  2.               case REQUEST_CODE_COLOR:
  3.                 int color = data.getIntExtra("color", Color.WHITE);
  4.                 tvText.setTextColor(color);
  5.                 break;
  6.               case REQUEST_CODE_ALIGN:
  7.                 int align = data.getIntExtra("alignment", Gravity.LEFT);
  8.                 tvText.setGravity(align);
  9.                 break;
  10.  


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 11 дек 2012, 00:50 
Аватар пользователя

Зарегистрирован: 17 фев 2012, 21:23
Сообщений: 1339
Откуда: Мордор
Благодарил (а): 16 раз.
Поблагодарили: 161 раз.
rszh писал(а):
Здравствуйте, я одно не понял, почему Color.WHITE и Gravity.LEFT а не другие?
Это значения по умолчанию, на случай если getIntExtra ничего не найдет.

_________________
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.


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

Зарегистрирован: 06 ноя 2012, 00:29
Сообщений: 12
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
rszh писал(а):
Здравствуйте, я одно не понял, почему Color.WHITE и Gravity.LEFT а не другие?

Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1.    switch (requestCode) {
  2.               case REQUEST_CODE_COLOR:
  3.                 int color = data.getIntExtra("color", Color.WHITE);
  4.                 tvText.setTextColor(color);
  5.                 break;
  6.               case REQUEST_CODE_ALIGN:
  7.                 int align = data.getIntExtra("alignment", Gravity.LEFT);
  8.                 tvText.setGravity(align);
  9.                 break;
  10.  

public int getIntExtra (String name, int defaultValue)


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

Зарегистрирован: 06 фев 2013, 20:47
Сообщений: 10
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
скажите пожалуйста, как сделать чтоб при вызове второго активити и ввода в него данных, результат уходил бы в третье активити, а экран возвращался бы в первое?


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

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

с ног на голову, если третьей активити не существует то туда не передать, к тому же текущее у вас уже первое, когда стартуете активити тогда и передавайте

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


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

Зарегистрирован: 06 фев 2013, 20:47
Сообщений: 10
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
по уроку вроде все понятно как происходит. а вот если есть три активити то как такое реализовать? и возможно ли? я пока очень новичёк. за тупость извиняюсь.


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

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

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


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

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


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

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