С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Изменение параметров активити из другого активити - Программирование Android

18.01.2014, 12:23. Просмотров 1918. Ответов 6
Метки нет (Все метки)

Как сделать так чтобы из первого активити поменять

final ImageView img=(ImageView)findViewById(R.id.image1);
img.setBackgroundResource(R.drawable.animationdemo); ------- вместо animationdemo поставить animationdemo2
img.post(new Runnable() {

в другом активити.



Сложность заключается в том что на 1 активити имеются 2 кнопки, 1-я меняет свойства 2 активити, а вторая уже переходит на 2 активити.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2014, 12:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Изменение параметров активити из другого активити (Программирование Android):

Отображение активити поверх другого активити - Программирование Android
Ребят подскажите пожалуйста как такое сделать. Есть активити с картой, по нажатию кнопки настройки, нужно открыть активити с настройками,...

На телефоне highscreen 3 на всех активити происходит быстрый самовозврат к главной активити - Программирование Android
Сделал меню в виде ListView. При клике на меню запускаются активити. На эмуляторе работает, на телефоне моем LG все работает. На телефоне...

Как вызвать метод в активити классе из обычного не активити класса? - Программирование Android
Есть активити в котором вводятся логин и пароль. При нажатии кнопки "войти" в отдельном классе "сокетсервер"(+в отдельном потоке)...

Вызов новой активити не из класса активити - Программирование Android
Есть 4 класса: 1) WelcomeActivity; 2) MainActivity; 3) PopUpActivity; 4) Client. Программа работает с сервером и получает...

Работа с Handler из другого активити - Программирование Android
Здравствуйте, пишу чат приложение и не могу понять как можно обрабатывать входящие сообщение из другого активити. У меня есть форма...

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

6
angryrobot
Командир зеленых роботов
348 / 285 / 53
Регистрация: 08.10.2013
Сообщений: 564
18.01.2014, 12:38 #2
Запуск активити осуществляется при помощи интента в который вы можете положить почти что угодно. Я предлагаю вам сделать так:
* Заранее создать интент который будет запускать вторую активти.
* При нажатии первой кнопки положить в него R.drawable.animationdemo2
* При нажатии второй кнопки запускать активити используя заранее созданный интент
* Во второй активити при старте проверять наличие R.drawable.animationdemo2 внутри интента, и если там оно есть то загружаем его в качестве фона.
1
tree00
1 / 1 / 0
Регистрация: 13.01.2014
Сообщений: 34
18.01.2014, 14:01  [ТС] #3
Вот интент запускающий вторую активити

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.Button1:
Intent intent = new Intent(this, MainActivity2.class);
startActivity(intent);
// TODO Call second activity
break;
default:
break;
}


Вкладываем в интент R.drawable.animationdemo2

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.Button2:
intent.putExtra(R.drawable.animationdemo2);
}


во 2 активити проверяем и загружаем в качестве фона



final ImageView img=(ImageView)findViewById(R.id.image1);
if
int count = getIntent().getIntExtra(R.drawable.animationdemo2);
{
img.setBackgroundResource(R.drawable.animationdemo2);
}

else
img.setBackgroundResource(R.drawable.animationdemo);
img.post(new Runnable()
{
@Override
public void run()
{
AnimationDrawable animation=(AnimationDrawable)img.getBackground();
animation.start();
}
});




Че-то не работает, или я чего-то напортачил?
0
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
18.01.2014, 14:27 #4
tree00, во-первых, оформляйте пожалуйста код с помощью тэгов, он слабо читаемый.
Во-вторых, бросилось в глаза:
Уберите строки
Java
1
2
default:
break;
Кладём данные:
Java
1
intent.putExtra("some_key", R.drawable.animationdemo2);
Получаем:
Java
1
2
3
4
Bundle extras = getIntent().getExtras();
if (extras != null) {
    int value = extras.getString("some_key");
}
1
tree00
1 / 1 / 0
Регистрация: 13.01.2014
Сообщений: 34
18.01.2014, 18:20  [ТС] #5
Целый день лазил по гуглу но хоть убейте ничего не понял, я сделал как вы сказали но всеравно выдает ошибку


вот полный код первой активити :



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
package com.example.projekt12;
 
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences.Editor;
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) {
    switch (v.getId()) {
    case R.id.BtnAct2:
        Intent intent = new Intent(this, MainActivity2.class);
        startActivity(intent);
      // TODO Call second activity
      break;
    
    }
    
   
       
        switch (v.getId()) {
        case R.id.BtnAct3:
       Intent.putExtra("some_key", R.drawable.animationdemo2);  // выдает ошибку (cannot make a static reference to the non-static method putextra(string, int) from the type intent)
            
        }
        
    }
     
}



вот полный код второй активити:

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
package com.example.projekt12;
 
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.getString("some_key");        // тут выдает такую ошибку (Type mismatch: cannot convert from String to int)
    }
    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();
  }
  }

Напротив мест ошибок стаят пояснения. Объясните пожалуйста может мне что-то задать надо или тип Statik задать непонятно в чем проблема?
0
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
18.01.2014, 18:27 #6
Цитата Сообщение от tree00 Посмотреть сообщение
Intent.putExtra("some_key", R.drawable.animationdemo2)
intent с малой буквы. Иначе это попытка вызвать статический метод Intent класса.

Java
1
Intent intent = new Intent(this, MainActivity2.class);
вынести перед switch()

и получится как-то так

Java
1
2
3
4
5
6
7
8
9
10
11
12
@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("some_key", R.drawable.animationdemo2);
                startActivity(intent);
        }
    }
extras.getString() вернёт строку. Пишите
Java
1
int value = extras.getInt("some_key");
1
tree00
1 / 1 / 0
Регистрация: 13.01.2014
Сообщений: 34
19.01.2014, 21:59  [ТС] #7
чет не срабатывает, как я понял в "some_key" подставляется R.drawable.animationdemo2 ?

Добавлено через 13 минут
и да еще

Java
1
2
3
4
5
6
7
8
9
10
11
12
@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("some_key", R.drawable.animationdemo2);
                startActivity(intent);
        }
    }
тут последний startActivity(intent); не нужен, ведь эта кнопка должна передавать данные на первую а уже первая запускать активити2 с нужными параметрами
0
19.01.2014, 21:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2014, 21:59
Привет! Вот еще темы с ответами:

Обращение к элементам активити из другого класса - Программирование Android
Добрый день. Ломаю голову битый час, все не могу понять, почему у меня не получается. Опишу по шагам. Создал проект андроид (в эклипсе),...

Не отображается игровое поле после выхода из другого активити - Программирование Android
Когда я выхожу из другого активити и пытаюсь зайти в игру,котороe у меня в главном активити,игровое поле не отображается. вот мой код.в...

Как изменится стек после вызова активити другого приложения - Программирование Android
Если у меня есть 2 задачи(2 Task) и я из первой задачи вызову активити, которое находится в стеке второй задачи, то у меня то активити...

Активити - Программирование Android
Не могу вызвать второе Activity


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

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

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