Урок 30. Подробнее про onActivityResult. Зачем нужны requestCode и resultCode
Урок 30. Подробнее про onActivityResult. Зачем нужны requestCode и resultCode
В этом уроке:
- разбираемся, зачем нужны requestCode и resultCode в onActivityResult
Click here to read this article!
- разбираемся, зачем нужны requestCode и resultCode в onActivityResult
Click here to read this article!
Последний раз редактировалось damager82 29 апр 2017, 19:02, всего редактировалось 5 раз.
Re: Урок 30. Подробнее про onActivityResult. Зачем нужны req
хочу добавить кнопку "размер", всё сделал , но почему то в MainActivity выдаёт ошибку при такой записи:
case REQUEST_CODE_SIZE:
int size = data.getIntExtra("size", TextSize.LARGEST);
tvText.setTextSize(size);
break;
подчёркивает getIntExtra красным и всё тут , хотел так же прописать размер текста цифрами , но не тут то было
разясните чайнику как быть .
спасибо
case REQUEST_CODE_SIZE:
int size = data.getIntExtra("size", TextSize.LARGEST);
tvText.setTextSize(size);
break;
подчёркивает getIntExtra красным и всё тут , хотел так же прописать размер текста цифрами , но не тут то было
разясните чайнику как быть .
спасибо
Re: Урок 30. Подробнее про onActivityResult. Зачем нужны req
Fima777 а может хоть расскажите что за ошибка? а то
требует телепатических знаний которыми я не обладаю, пока что =)подчёркивает getIntExtra красным и всё тут
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 30. Подробнее про onActivityResult. Зачем нужны req
Напишите какого типа объекты data и TextSize.LARGEST. Скорей всего пытаетесь передать в метод параметры, которые он принимать не умеетFima777 писал(а):хочу добавить кнопку "размер", всё сделал , но почему то в MainActivity выдаёт ошибку при такой записи:
case REQUEST_CODE_SIZE:
int size = data.getIntExtra("size", TextSize.LARGEST);
tvText.setTextSize(size);
break;
подчёркивает getIntExtra красным и всё тут , хотел так же прописать размер текста цифрами , но не тут то было
разясните чайнику как быть .
спасибо
Re: Урок 30. Подробнее про onActivityResult. Зачем нужны req
У меня аналогичная проблема:Fima777 писал(а):хочу добавить кнопку "размер", всё сделал , но почему то в MainActivity выдаёт ошибку при такой записи:
case REQUEST_CODE_SIZE:
int size = data.getIntExtra("size", TextSize.LARGEST);
tvText.setTextSize(size);
break;
подчёркивает getIntExtra красным и всё тут , хотел так же прописать размер текста цифрами , но не тут то было
разясните чайнику как быть .
спасибо
Главный Activity
Код: Выделить всё
package kz.ranter.teaching.p0301;
import kz.ranter.teaching.R;
import kz.ranter.teaching.Starter;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class P0301_ActivityResult extends Activity implements OnClickListener{
TextView tvText;
Button btnColor, btnAlign;
final int REQUEST_CODE_COLOR=1, REQUEST_CODE_ALIGN=2;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.p0301_activity_result);
tvText = (TextView)findViewById(R.id.tvText);
btnColor = (Button)findViewById(R.id.btnColor);
btnAlign = (Button)findViewById(R.id.btnAlign);
btnColor.setOnClickListener(this);
btnAlign.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.btnColor:
Intent i = new Intent(this, ColorActivity.class);
startActivityForResult(i, REQUEST_CODE_COLOR);
}}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
if(resultCode == RESULT_OK){
switch(requestCode){
case REQUEST_CODE_COLOR:
Log.d(Starter.TAG,"Обработка установки текста");
//int color = data.getIntExtra("color",Color.WHITE);
//tvText.setTextColor(color);
break;
}}}}
Выбор цвета:
Код: Выделить всё
package kz.ranter.teaching.p0301;
import kz.ranter.teaching.R;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class ColorActivity extends Activity implements OnClickListener{
Button btnRed, btnGreen, btnBlue;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.color);
btnRed = (Button)findViewById(R.id.btnRed);
btnGreen = (Button)findViewById(R.id.btnGreen);
btnBlue = (Button)findViewById(R.id.btnBlue);
btnRed.setOnClickListener(this);
btnGreen.setOnClickListener(this);
btnBlue.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent();
switch(v.getId()){
case R.id.btnRed:
intent.putExtra("color", Color.RED);
break;
case R.id.btnGreen:
intent.putExtra("color", Color.GREEN);
break;
case R.id.btnBlue:
intent.putExtra("color", Color.BLUE);
break;
}
setResult(RESULT_OK);
finish();
}
}
Re: Урок 30. Подробнее про onActivityResult. Зачем нужны req
Вопрос снят
Вот до чего копипаст доводит
setResult оказывается перегруженный метод. с двумя формами:
setResult(int) и setResult(int, Intent)
Звиняйте за длинный пост
Вот до чего копипаст доводит
setResult оказывается перегруженный метод. с двумя формами:
setResult(int) и setResult(int, Intent)
Звиняйте за длинный пост
Re: Урок 30. Подробнее про onActivityResult. Зачем нужны req
Народ помогите, либо лыжи не едут либо я ......
суть проблемы: делаю свой проект и наткнулся на странную вещь onActivityResult вызывается сразу после startActivityForResult еще до закрытия дочерней активити и после закрытия дочерней активити больше не вызывается, соответственно никаких результатов от дочерней активити я не получаю. Думал намудрил что-то в своем коде, зашел сюда, взял этот урок, создал новый проект запускаю и ..., после нажатия кнопки Color или Alignment всплывает тоаст Wrong result, хотя я еще никаких кнопок на дочерней активити не нажимал и соответственно после нажатия и закрытия дочерней активити ни цвет ни выравнивание ни изменяются, та же история что и у меня в проекте onActivityResult вызывается сразу после startActivityForResult. Что интересно такое и на планшете и на эмуляторе.
Что это может быть и как от этого лечится?
суть проблемы: делаю свой проект и наткнулся на странную вещь onActivityResult вызывается сразу после startActivityForResult еще до закрытия дочерней активити и после закрытия дочерней активити больше не вызывается, соответственно никаких результатов от дочерней активити я не получаю. Думал намудрил что-то в своем коде, зашел сюда, взял этот урок, создал новый проект запускаю и ..., после нажатия кнопки Color или Alignment всплывает тоаст Wrong result, хотя я еще никаких кнопок на дочерней активити не нажимал и соответственно после нажатия и закрытия дочерней активити ни цвет ни выравнивание ни изменяются, та же история что и у меня в проекте onActivityResult вызывается сразу после startActivityForResult. Что интересно такое и на планшете и на эмуляторе.
Что это может быть и как от этого лечится?
Re: Урок 30. Подробнее про onActivityResult. Зачем нужны req
Всем спасибо:D , проблема решена.
В файле манифеста нужно изменить режим запуска активити на
android:launchMode="standard"
вместо
android:launchMode="singleTask"
источник: http://stackoverflow.com/questions/6539 ... second-act
В файле манифеста нужно изменить режим запуска активити на
android:launchMode="standard"
вместо
android:launchMode="singleTask"
источник: http://stackoverflow.com/questions/6539 ... second-act
Re: Урок 30. Подробнее про onActivityResult. Зачем нужны req
Я кстати, так и подумал, что что-то с этим связано, но обычно такой проблемы ни у кого не возникает т.к. по умолчанию android:launchMode всегда "standard", если кто-то его поставил "singleTask" значит знал что делал
Re: Урок 30. Подробнее про onActivityResult. Зачем нужны req
У меня оно почему-то ставится по умолчанию, я даже когда создал новый проект по этому примеру, там тоже стало по умолчанию "singleTask", поэтому пример и не работал, может это где-то в настройках эклипса выставляется?
Re: Урок 30. Подробнее про onActivityResult. Зачем нужны req
Вообще-то все шаблоны находятся в папке \android-sdk\tools\templates из них и строится все при создании новых проектов и компонентов приложения.
У меня в шаблонах манифеста нет указаний для android:launchMode и этот атрибут никак не определен.
У меня в шаблонах манифеста нет указаний для android:launchMode и этот атрибут никак не определен.
Re: Урок 30. Подробнее про onActivityResult. Зачем нужны req
И снова я
опять проблема с данным методом, вчера весь день писал проект, проверял все на эмуляторе, все прекрасно работало, вечером решил скинуть на планшет и при закрытии дочернего активити стала вылетать ошибка, методом исключений нашел что вылетает именно при вызове finish().
На эмуляторе все работает, не пойму как такое может быть и как теперь отловить что за ошибка, так как в логах эмулятора все красиво, а планшет ничего кроме стандартной фразы о неожиданной остановке не выдаёт .
опять проблема с данным методом, вчера весь день писал проект, проверял все на эмуляторе, все прекрасно работало, вечером решил скинуть на планшет и при закрытии дочернего активити стала вылетать ошибка, методом исключений нашел что вылетает именно при вызове finish().
На эмуляторе все работает, не пойму как такое может быть и как теперь отловить что за ошибка, так как в логах эмулятора все красиво, а планшет ничего кроме стандартной фразы о неожиданной остановке не выдаёт .
Re: Урок 30. Подробнее про onActivityResult. Зачем нужны req
Проблема решилась при помощи данного метода: http://androidmarket.ru/?page_id=6383
проблема была в закрытом курсоре, но все равно не понятно почему эта ошибка не проявлялась на эмуляторе
проблема была в закрытом курсоре, но все равно не понятно почему эта ошибка не проявлялась на эмуляторе
Re: Урок 30. Подробнее про onActivityResult. Зачем нужны req
Здравствуйте, я одно не понял, почему Color.WHITE и Gravity.LEFT а не другие?
Код: Выделить всё
switch (requestCode) {
case REQUEST_CODE_COLOR:
int color = data.getIntExtra("color", Color.WHITE);
tvText.setTextColor(color);
break;
case REQUEST_CODE_ALIGN:
int align = data.getIntExtra("alignment", Gravity.LEFT);
tvText.setGravity(align);
break;
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Урок 30. Подробнее про onActivityResult. Зачем нужны req
Это значения по умолчанию, на случай если getIntExtra ничего не найдет.rszh писал(а):Здравствуйте, я одно не понял, почему Color.WHITE и Gravity.LEFT а не другие?
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Урок 30. Подробнее про onActivityResult. Зачем нужны req
public int getIntExtra (String name, int defaultValue)rszh писал(а):Здравствуйте, я одно не понял, почему Color.WHITE и Gravity.LEFT а не другие?
Код: Выделить всё
switch (requestCode) { case REQUEST_CODE_COLOR: int color = data.getIntExtra("color", Color.WHITE); tvText.setTextColor(color); break; case REQUEST_CODE_ALIGN: int align = data.getIntExtra("alignment", Gravity.LEFT); tvText.setGravity(align); break;
Re: Урок 30. Подробнее про onActivityResult. Зачем нужны req
скажите пожалуйста, как сделать чтоб при вызове второго активити и ввода в него данных, результат уходил бы в третье активити, а экран возвращался бы в первое?
Re: Урок 30. Подробнее про onActivityResult. Зачем нужны req
с ног на голову, если третьей активити не существует то туда не передать, к тому же текущее у вас уже первое, когда стартуете активити тогда и передавайтеgad007 писал(а):скажите пожалуйста, как сделать чтоб при вызове второго активити и ввода в него данных, результат уходил бы в третье активити, а экран возвращался бы в первое?
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 30. Подробнее про onActivityResult. Зачем нужны req
по уроку вроде все понятно как происходит. а вот если есть три активити то как такое реализовать? и возможно ли? я пока очень новичёк. за тупость извиняюсь.
Re: Урок 30. Подробнее про onActivityResult. Зачем нужны req
дело в том что третьего нету, все данные возвращаете со второй активити в первую, при старте третьей активити из первой передаёте нужные данные.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена