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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.88
tree00
1 / 1 / 0
Регистрация: 13.01.2014
Сообщений: 34
#1

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

30.01.2014, 12:46. Просмотров 3390. Ответов 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. Что я тут сделал не так?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2014, 12:46     Передача данных между активити
Посмотрите здесь:

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

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

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

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

Передача данных между Activity1 3 - Программирование Android
1. надо сделать что бы из 1 окна передать данные на 3 окно 2. если честно я не понял как пользоваться INTENT вот код: отправить ...

Передача данных между устройствами - Программирование Android
Всем привет! Подскажите, пожалуйста, как передать значение переменной на другое устройство. Думал использовать wifi direct. Но как это...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kirawa
33 / 33 / 1
Регистрация: 12.11.2013
Сообщений: 336
30.01.2014, 13:02     Передача данных между активити #2
гугли Intent'ы , зачем менять 2 активити если оно не доступно глазу твоему
korsaj
148 / 117 / 9
Регистрация: 16.08.2013
Сообщений: 510
30.01.2014, 14:32     Передача данных между активити #3
Можно сделать класс посредник доступный из обоих активити ))
yura91
29 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,238
20.08.2014, 13:28     Передача данных между активити #4
да как передать данные в другое активити без вызова метода startactivity то есть не переходя в него??? Может использовать обьект Bunndle и его метод putInt можно так???
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
20.08.2014, 13:40     Передача данных между активити #5
запихать данные в intent, во втором активити в манифесте описать схему этих данных, вызвать startActivity с action_view, данные прилетят в onNewIntent во втором активити
yura91
29 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,238
20.08.2014, 13:47     Передача данных между активити #6
а как в манифесте прописать схему можете фрагмент кода приложить??
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
20.08.2014, 13:49     Передача данных между активити #7
http://developer.android.com/guide/t...a-element.html
yura91
29 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,238
21.08.2014, 01:40     Передача данных между активити #8
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 в другое активити ав данные почему то не передаются ?? Может я в манифесте данные не правильно прописал?
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
21.08.2014, 12:20     Передача данных между активити #9
Передаете peredacha, а получаете fName. И причем здесь манифест?

Добавлено через 1 минуту
Еще и два интента, зачем?
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
21.08.2014, 12:33     Передача данных между активити #10
автор, создай любой класс в проекте и передавай все через него, не мучайся
у тебя свой проект, нет необходимости извращаться и передавать все через интенты
что-то типа
Java
1
2
3
4
public class MyCoolProp {
    static String MyCoolSharedString;
    static int MyCoolSharedInt;
}
yura91
29 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,238
21.08.2014, 14:34     Передача данных между активити #11
ну да но просто создавать целый класс для одной переменной не очень корректно мне кажется
yura91
29 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,238
21.08.2014, 14:45     Передача данных между активити #12
Кстати почему при указании в манифесте action с ACTION_VIEW и дальше вызова интента с ACTION_VIEW открывается такое оено как показано на скрине?? Видимо у этого стандартного окна тоже в манифесте ACTION_VIEW так это? как избежать эту ситуацию и передать данные в то активити куда мне надо??
Миниатюры
Передача данных между активити  
yura91
29 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,238
21.08.2014, 14:54     Передача данных между активити #13
мне просто интересен вопрос не подскажите??

Добавлено через 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 секунду
Почему происходит то что на скрине а не передает данные во второе активити??
kirawa
33 / 33 / 1
Регистрация: 12.11.2013
Сообщений: 336
21.08.2014, 16:29     Передача данных между активити #14
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("айди");
yura91
29 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,238
21.08.2014, 20:38     Передача данных между активити #15
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>
а манифест у второго активити такой да должен быть?? Просто почему когда я так делаю вылазит какое то активити то что на скрине?? а правильно сделать ?? подскажите как исправить??
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
21.08.2014, 20:47     Передача данных между активити #16
Зачем передавать данные в активити, если не переходить в нее? Это принципиально важно для ответа.
yura91
29 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,238
21.08.2014, 20:55     Передача данных между активити #17
ну просто второе активити у меня запускается изначально кнопкой а потом нажимая на вторую кнопку пользователь передает строку ключ который запускает фоновый поток во втором активити когда срабатывает метод onNewIntent второго активити данные должны прийти в этот метод как это сделать я пытаюсь а как исправить тогда мой код?
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
21.08.2014, 21:05     Передача данных между активити #18
Ок, спрошу по другому. Что вы хотите получить в итоге. Не как вы хотите сделать, а именно что нужно в итоге. Потому что я уверен, что здесь нужен совсем другой подход.
yura91
29 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,238
21.08.2014, 21:49     Передача данных между активити #19
я хочу чтобы каждые 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 минуты
из первого во второе сразу передаю при создании второго
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2014, 22:05     Передача данных между активити
Еще ссылки по теме:

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

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

Передача с одного активити в другое - Программирование Android
Помогите!!!Есть два активити в первом я ввожу данные в editText как мне сделать передачу в listview другого активити.Я сделал но у меня...

Передача константы в другое активити - Программирование Android
Здравствуйте. Задача такая: нужно из одного активити передать в другое константу с именем xml файла. т.е. в первом активити при...

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


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

Или воспользуйтесь поиском по форуму:
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
21.08.2014, 22:05     Передача данных между активити #20
Ну тут нужен во-первых отдельный класс для обработки картинок(загрузка из интернета, обработка, сохранение). И пусть они там и хранятся. А при запуске второго активити брать оттуда картинки и показывать. Не представляю зачем что-то передавать. И вообще в активити ничего не нужно хранить кроме элементов интерфейса. И картинки лучше хранить не в памяти(оперативной) а на диске(карте памяти или внутренней памяти).

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

Добавлено через 1 минуту
Цитата Сообщение от yura91 Посмотреть сообщение
Не подскажите как это исправить может версию андроид выбрать другую несовместимость версии?
Ну видимо да, нужно поменять targetVersion(как то так) на 19 или выше.
Yandex
Объявления
21.08.2014, 22:05     Передача данных между активити
Ответ Создать тему
Опции темы

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