Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/41: Рейтинг темы: голосов - 41, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 13.01.2014
Сообщений: 34

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

30.01.2014, 12:46. Показов 8111. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru