Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
fundator
Сообщений: n/a
#1

Как организовать последовательную передачу данных между тремя активностями? - Программирование Android

15.07.2013, 20:01. Просмотров 602. Ответов 0
Метки нет (Все метки)

Здравствуйте!
Столкнулся с проблемой.
Есть потребность в справочном приложении, которое будет выглядеть следующим образом:
Из первой активности (ListView) через intent происходит передача картинки во вторую активность в зависимости от выбранного элемента.
Во второй активности необходимо перейти к комментарию в виде текста в третьей активности. Вывод через нажатие иконки в Action Bar.
Подскажите, пожалуйста, как можно реализовать передачу текста в третью активность в строгой зависимости от первого выбора.

Первая активность.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
public class FirstActivity extends ListActivity {
    /** Called when the activity is first created. */
    public TextView Text;
    public ArrayList<ListData> catalog;
    String[] names;
    String[] descriptionsAlg;
 
    int img = R.drawable.ic_item_alg;
    int[] png = { R.drawable.opisanie, R.drawable.predosterezenie };
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        setContentView(R.layout.activity_first);
 
        names = new String[2];
        names[0] = getResources().getString(R.string.str_o);
        names[1] = getResources().getString(R.string.str_p);
 
        descriptionsAlg = new String[2];
        descriptionsAlg[0] = getResources().getString(R.string.txt_o);
        descriptionsAlg[1] = getResources().getString(R.string.txt_p);
 
        // Создаем массив объектов ListData и заполняем их данными
        catalog = new ArrayList<ListData>();
        for (int i = 1; i <= 2; i++) {
            catalog.add(new ListData(names[i - 1], png[i - 1], img,
                    descriptionsAlg[i - 1]));
        }
 
        // Создаем адаптер данных
        CatalogAdapter catAdapter;
        catAdapter = new CatalogAdapter(this, catalog);
        setListAdapter(catAdapter);
    }
 
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        // Проверяем ориентацию экрана
        if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
 
        } else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
 
        }
 
    }
 
    public void onListItemClick(ListView parent, View v, int position, long id) {
        Intent intent = new Intent(this, SecondActivity.class);
 
        intent.putExtra(SecondActivity.PICTURE, png[position]);
 
        intent.putExtra(ThirdActivity.DESCRIPTIONSALG,
                descriptionsAlg[position]);
 
        startActivity(intent);
    }
 
    public TextView getText() {
        return Text;
    }
 
    public void setText(TextView Text) {
        this.Text = Text;
    }
Вторая активность.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
public class SecondActivity extends Activity implements OnClickListener {
    public static final String PICTURE = "picture";
 
    /** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        // Получаем данные от деятельности FirstActivity
        Intent intent = getIntent();
 
        int imageId = intent.getIntExtra(PICTURE, R.drawable.ic_launcher);
        ImageView image = (ImageView) findViewById(R.id.aboutImage);
        image.setImageDrawable(getResources().getDrawable(imageId));
 
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main_second, menu);
        return true;
    }
 
    public void onClick(View v) {
        finish();
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
 
        case R.id.item_2: {
            Intent intent = new Intent(this, ThirdActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(intent);
            return true;
 
        }
        case R.id.item_1: {
            Intent intent = new Intent(this, FirstActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(intent);
            return true;
        }
        default:
            return super.onOptionsItemSelected(item);
 
        }
    }
Третья активность.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
public class ThirdActivity extends Activity implements OnClickListener {
 
    public static final String DESCRIPTIONSALG = "descriptionsAlg";
 
    /** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_third);
        // Получаем данные от деятельности FirstActivity
 
        Intent intent = getIntent();
 
        int textId = intent.getIntExtra(DESCRIPTIONSALG, R.string.txt_o);
 
        TextView text = (TextView) findViewById(R.id.TextViev);
        text.setText(getResources().getString(textId));
 
    }
 
    public static String getDescriptionsalg() {
        return DESCRIPTIONSALG;
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main_third, menu);
        return true;
    }
 
    public void onClick(View v) {
        finish();
    }
 
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        // Проверяем ориентацию экрана
        if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
 
        } else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
 
        }
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.item_1: {
            Intent intent = new Intent(this, FirstActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(intent);
            return true;
        }
        default:
            return super.onOptionsItemSelected(item);
 
        }
    }
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2013, 20:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как организовать последовательную передачу данных между тремя активностями? (Программирование Android):

Как организовать передачу данных между JS и Studio? - Программирование Android
JS лежит внутри asset/www/файл. Нужно чтоб ПЕРЕД загрузкой файлика в WebView в него передавались некие переменные. Еще бы уметь получать...

Передача данных между активностями - Программирование Android
к примеру есть 2 активности первая public class first_act extends Activity { @Override protected void onCreate(Bundle...

Кто как передаёт коллекции между активностями, классами? - Программирование Android
Всем привет! Поделитесь опытом. Допустим, в одном классе вы накапливаете данные (ArrayList), в другой передаёте. Там можете вывести в...

Переход между активностями! - Программирование Android
не могу перейти между активностями! вот весь лог 12-27 14:32:51.611: D/dalvikvm(330): GC_EXTERNAL_ALLOC freed 83K, 51% free...

Передача данных между тремя Activity - Программирование Android
Доброго времени суток! у меня тут проблемка, связанная с Intent'ами, помогите разобраться. Есть 3 активности: MainActivity, SearchActivity...

Передача значений между активностями - Программирование Android
Добрый день. Как можно передавать значения переменных между активностями? У меня задача такая: имею четыре активности, одна это заголовок,...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.07.2013, 20:01
Привет! Вот еще темы с ответами:

Затруднение с переключением между активностями - Программирование Android
Чтобы лучше понимать решил написать приложение расписания пар в университете и наткнулся на одну проблему. Создал одну активность в которой...

MediaPlayer, рывок перезапуска музыки при переходе между активностями - Программирование Android
Всем привет, есть приложение с несколькими активностями и при переходе между ними заметен рывок перезапуска музыки (onResume). Как сделать...

Как сделать передачу данных по bluetooth - Программирование Android
Создал приложение на телефон, которые отправляет на моего домашнего робота &quot;1&quot;, плата которая стоит в роботе запрограммирована под Basic....

Как организовать сохранение данных при регистрации - Программирование Android
Здравствуйте! Делаю регистрационную форму. Регистрация состоит из нескольких частей: 1 ФИО и контакты 2 Дополнительная информация ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru