1 / 1 / 0
Регистрация: 13.01.2014
Сообщений: 34

Передача данных между активити

30.01.2014, 12:46. Показов 8355. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как сделать так чтобы при нажатии на кнопку в первом активити изменялись данные во втором активити, но без перехода в него, а переход осуществлялся при нажатии второй кнопки. Вот полный код первого и второго активити:
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
package com.example.activity01;
 
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
 
public class MainActivity extends Activity implements OnClickListener {
 
  ImageButton btnActTwo;
 
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
 
    btnActTwo = (ImageButton) findViewById(R.id.BtnAct2);
    btnActTwo.setOnClickListener(this);
    
    btnActTwo = (ImageButton) findViewById(R.id.BtnAct3);
    btnActTwo.setOnClickListener(this);
    
  }
 
  @Override
  public void onClick(View v) {
      Intent intent = new Intent(this, MainActivity2.class);
      switch (v.getId()) {
          case R.id.BtnAct2:
              startActivity(intent);
              break;
          case R.id.BtnAct3:
              intent.putExtra("animm", R.drawable.animationdemo2);
              
      }
  }
}



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
68
69
70
71
package com.example.activity02;
 
import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.graphics.drawable.AnimationDrawable;
import android.view.MotionEvent;
import android.widget.ImageView;
 
 
 
 
public class MainActivity2 extends Activity  {
    
    MediaPlayer Aud;
    MediaPlayer Aud2;
    
 
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_activity2);
       
    Aud = MediaPlayer.create(this, R.raw.alarm);
    Aud.setLooping(true);
    Aud.start();
   
    final ImageView img=(ImageView)findViewById(R.id.image1);
    Bundle extras = getIntent().getExtras();
 
    if (extras != null) {
        int value = extras.getInt("animm");
        
}
    else
    img.setBackgroundResource(R.drawable.animationdemo);  
    img.post(new Runnable() {
        
        @Override
        public void run() {
            AnimationDrawable animation=(AnimationDrawable)img.getBackground();
             animation.start();
            
        }
    });
  
     
}
  @Override
  public boolean onTouchEvent(MotionEvent event) 
  {
      if(event.getAction() == MotionEvent.ACTION_DOWN) {
      Aud2 = MediaPlayer.create(this, R.raw.trew1);
      Aud2.setLooping(true);  
      Aud2.start();  
      }
       if (event.getAction() == MotionEvent.ACTION_UP)
      {
        Aud2.reset();  
      }
      return super.onTouchEvent(event);
  }
  
  @Override
  public void onPause(){
  Aud.stop();
  finish();
    super.onPause();
  }
  }

Надо поменять animationdemo на animationdemo2. Что я тут сделал не так?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.01.2014, 12:46
Ответы с готовыми решениями:

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

Передача чисел между активити
Реакция на нажатие кнопки, переход в другое активити и передача значения переменной GAME_SCORE = 15; Intent intent = new...

Передача ссылки на объект между Активити
Добрый день уважаемые! Подскажите пожалуйста как передать ссылку на объект в другое активити, а потом получить обратно ссылку именно...

28
35 / 35 / 2
Регистрация: 12.11.2013
Сообщений: 345
30.01.2014, 13:02
гугли Intent'ы , зачем менять 2 активити если оно не доступно глазу твоему
0
194 / 154 / 23
Регистрация: 16.08.2013
Сообщений: 738
30.01.2014, 14:32
Можно сделать класс посредник доступный из обоих активити ))
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
20.08.2014, 13:28
да как передать данные в другое активити без вызова метода startactivity то есть не переходя в него??? Может использовать обьект Bunndle и его метод putInt можно так???
0
216 / 216 / 33
Регистрация: 26.12.2010
Сообщений: 691
20.08.2014, 13:40
запихать данные в intent, во втором активити в манифесте описать схему этих данных, вызвать startActivity с action_view, данные прилетят в onNewIntent во втором активити
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
20.08.2014, 13:47
а как в манифесте прописать схему можете фрагмент кода приложить??
0
216 / 216 / 33
Регистрация: 26.12.2010
Сообщений: 691
20.08.2014, 13:49
http://developer.android.com/g... ement.html
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
21.08.2014, 01:40
XML
1
2
3
<data android:scheme="something" 
      android:host="project.example.com" пакет проекта
      android:mimeType="int"целый тип
" />

если так описать данные в манифесте второго активити будет правильно(мне надо целое передать)??? я просто английский не очень понимаю подскажите если что?

Добавлено через 8 часов 30 минут
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
package com.example.newintent;
 
 
import android.R.string;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
 
public class  MainActivity  extends Activity implements OnClickListener{
 
    Button btn;
     String a = "vesh";
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        setContentView(R.layout.main);
         btn = (Button) findViewById(R.id.button1);
         
         Intent intent = new Intent(this, MainActivity2.class);
            startActivity(intent);
            btn.setOnClickListener(this);
        /*Чтобы элемент интерфейса имел
         * контекстное меню, его нужно
         * зарегистрировать*/
        
        
    }
 
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
         switch (v.getId()) {
            case R.id.button1:
              // TODO Call second activity
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.putExtra("peredacha", a);
                startActivity(intent);
                Intent intent1 = new Intent(this, MainActivity2.class);
                startActivity(intent1);
              break;
            default:
              break;
            }
        
    }
}
первое активити

Добавлено через 1 минуту
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
package com.example.newintent;
 
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
 
public class MainActivity2 extends Activity{
    TextView etFName;
    String b;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main2);
        
        etFName = (TextView) findViewById(R.id.textView1);
        
        
    }
    
    @Override
            public void onNewIntent(Intent intent) {
                super.onNewIntent(intent);
                 
                Intent intenty = getIntent();
                String fName = intent.getStringExtra("fname");
                etFName.setText("Your name is: " + fName + " ");
}
}
Второе активити

Добавлено через 1 минуту
XML
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
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.newintent"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.newintent.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
         <activity
            android:name="com.example.newintent.MainActivity2"
            android:label="@string/app_name" >
            <intent-filter>
                    <action android:name="android.intent.action.VIEW" />
                    
                </intent-filter>
      <data android:scheme="something" 
      android:host="com.example.newintent" 
      android:mimeType="string"/>
            </activity>
    </application>
 
</manifest>
манифест

Добавлено через 1 минуту
Почему то не получается передать из первого активити во второе переменную типа String в чем проблема что я делаю не так как исправить???

Добавлено через 2 часа 23 минуты
просто я пробую передать данные через ACTIO_VIEW в другое активити ав данные почему то не передаются ?? Может я в манифесте данные не правильно прописал?
0
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
21.08.2014, 12:20
Передаете peredacha, а получаете fName. И причем здесь манифест?

Добавлено через 1 минуту
Еще и два интента, зачем?
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
21.08.2014, 12:33
автор, создай любой класс в проекте и передавай все через него, не мучайся
у тебя свой проект, нет необходимости извращаться и передавать все через интенты
что-то типа
Java
1
2
3
4
public class MyCoolProp {
    static String MyCoolSharedString;
    static int MyCoolSharedInt;
}
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
21.08.2014, 14:34
ну да но просто создавать целый класс для одной переменной не очень корректно мне кажется
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
21.08.2014, 14:45
Кстати почему при указании в манифесте action с ACTION_VIEW и дальше вызова интента с ACTION_VIEW открывается такое оено как показано на скрине?? Видимо у этого стандартного окна тоже в манифесте ACTION_VIEW так это? как избежать эту ситуацию и передать данные в то активити куда мне надо??
Миниатюры
Передача данных между активити  
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
21.08.2014, 14:54
мне просто интересен вопрос не подскажите??

Добавлено через 4 минуты
вероятно я неправильно вызов делаю startActivity??

Добавлено через 2 минуты
делаю так

Java
1
2
3
Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.putExtra("peredacha", a);
                startActivity(intent);

первое активити

Java
1
2
3
Intent intenty = getIntent();
                String fName = intenty.getStringExtra("peredacha");
                etFName.setText("Your name is: " + fName + " ");
второе активити все верно так??

Добавлено через 58 секунд
вот манифест второго активити

XML
1
2
3
4
5
6
7
8
9
10
11
<activity
            android:name="com.example.newintent.MainActivity2"
            android:label="@string/app_name" >
            <intent-filter>
                    <action android:name="android.intent.ACTION_VIEW" />
                    
                </intent-filter>
      <data android:scheme="something" 
      android:host="com.example.newintent" 
      android:mimeType="string"/>
            </activity>
Добавлено через 41 секунду
Почему происходит то что на скрине а не передает данные во второе активити??
0
35 / 35 / 2
Регистрация: 12.11.2013
Сообщений: 345
21.08.2014, 16:29
Java
1
2
3
4
5
6
7
8
Intent intent = new Intent(context, XXX.class);
        intent.putExtra("айди", id);
        startActivityForResult(intent, 1);
 
 
 
 Bundle bundle = getIntent().getExtras();
  id = bundle.getLong("айди");
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
21.08.2014, 20:38
id = bundle.getLong("айди"); возвращает тип Bundle значит id тип Bundle должно иметь ?? как тогда сохранение в String во втором активити?

Добавлено через 2 часа 46 минут
и потом мне нужен не нужен переход к активити которому я передаю данные

Добавлено через 1 минуту
Java
1
2
3
Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.putExtra("peredacha", a);
                startActivity(intent);
Добавлено через 1 минуту
Java
1
2
3
Intent intenty = getIntent();
                String fName = intenty.getStringExtra("peredacha");
                etFName.setText("Your name is: " + fName + " ");
я так пытаюсь делать так правильно??

Добавлено через 2 минуты
XML
1
2
3
4
5
6
7
8
9
10
11
<activity
            android:name="com.example.newintent.MainActivity2"
            android:label="@string/app_name" >
            <intent-filter>
                    <action android:name="android.intent.ACTION_VIEW" />
                    
                </intent-filter>
      <data android:scheme="something" 
      android:host="com.example.newintent" 
      android:mimeType="string"/>
            </activity>
а манифест у второго активити такой да должен быть?? Просто почему когда я так делаю вылазит какое то активити то что на скрине?? а правильно сделать ?? подскажите как исправить??
0
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
21.08.2014, 20:47
Зачем передавать данные в активити, если не переходить в нее? Это принципиально важно для ответа.
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
21.08.2014, 20:55
ну просто второе активити у меня запускается изначально кнопкой а потом нажимая на вторую кнопку пользователь передает строку ключ который запускает фоновый поток во втором активити когда срабатывает метод onNewIntent второго активити данные должны прийти в этот метод как это сделать я пытаюсь а как исправить тогда мой код?
0
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
21.08.2014, 21:05
Ок, спрошу по другому. Что вы хотите получить в итоге. Не как вы хотите сделать, а именно что нужно в итоге. Потому что я уверен, что здесь нужен совсем другой подход.
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
21.08.2014, 21:49
я хочу чтобы каждые 24 часа при запуске во втором активити обновлялся контент кортинок которые находятся в ScrollView?? а их много этих картинок картинки из базы данных приходят в первое активити Вот две проблемы Во первых переполняется буфер на телефоне так как если добавляешь больше 12 картинок в ScrollView падает приложение поэтоиу мне нужно при скроллинге обновлять изображения в скроле А я не знаю как зафиксировать правильно событие скроллинга Вы не подскажите как можно обработать скроллинг?? и второе мне нужно передавать какой то флаг из первого активити во второе каждые 24 часа вот передача данных??

Добавлено через 3 минуты
и еще проблема публикации в твиттер при установке приложения на консоли пишет следующее красным [2014-08-21 20:45:21 - AndroidTwitterSample] WARNING: Application does not specify an API level requirement!
[2014-08-21 20:45:21 - AndroidTwitterSample] Device API version is 19 (Android 4.4.2)

вследствие чего падает приложение Не подскажите как это исправить может версию андроид выбрать другую несовместимость версии?

Добавлено через 2 минуты
картинки я сразу передаю во второе активити и они там хранятся в массиве сразу а раз в 24 часа надо обновлять эти картинки

Добавлено через 23 минуты
из первого во второе сразу передаю при создании второго
0
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
21.08.2014, 22:05
Ну тут нужен во-первых отдельный класс для обработки картинок(загрузка из интернета, обработка, сохранение). И пусть они там и хранятся. А при запуске второго активити брать оттуда картинки и показывать. Не представляю зачем что-то передавать. И вообще в активити ничего не нужно хранить кроме элементов интерфейса. И картинки лучше хранить не в памяти(оперативной) а на диске(карте памяти или внутренней памяти).

Добавлено через 6 минут
Вот про подгрузку. Как обойтись без БД незнаю. Изучайте SQLite, так будет правильнее. И работать будет без ошибок и подвисаний.

Добавлено через 1 минуту
Цитата Сообщение от yura91 Посмотреть сообщение
Не подскажите как это исправить может версию андроид выбрать другую несовместимость версии?
Ну видимо да, нужно поменять targetVersion(как то так) на 19 или выше.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.08.2014, 22:05
Помогаю со студенческими работами здесь

Передача данных в другое активити
Доброго времени суток, возникла проблема со списком! Собственно нужно выбранный элемент из списка передать в другую активность и...

Передача данных между ListView
Доброго времени суток форумчане! Не получается решить одну проблему, надеюсь на вашу помощь. В классе фрагмента есть метод onCreateView,...

Передача данных между классами
Добрый день господа. Пишу свое первое приложение на андроид, и столкнулся с вот такой проблемой. Чего я ожидаю от приложения. В...

Передача данных между activity
Здравствуйте! Для передачи данных между Activity требуется Пользователь вводит данные в строку(текст)-где этот param...

Передача данных между потоками
Всем доброго времени суток. В общем есть приложение, которое парсит сайт с музыкой, добавляет результат в listView и затем выводит...


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

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

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru