Как передать данные background второстепеного активити
Как передать данные background второстепеного активити
Добрый день, помогите плиз, не могу с"ориентироваться с putExtra как передать данные background второстепеного активити,
главному активити, тоесть если скажем, чтоб передать текст мы пишем так:
intent.putExtra("text", editText1.getText().toString());
и принимаем так:
Intent intent = getIntent();
String text = intent.getStringExtra("text");
textView1.setText( text );
а вот с background как дело обстоит не могу понять, то ли плохо ищу инфу
помогите плиз
главному активити, тоесть если скажем, чтоб передать текст мы пишем так:
intent.putExtra("text", editText1.getText().toString());
и принимаем так:
Intent intent = getIntent();
String text = intent.getStringExtra("text");
textView1.setText( text );
а вот с background как дело обстоит не могу понять, то ли плохо ищу инфу
помогите плиз
Re: Как передать данные background второстепеного активити
а как вы вообще получаете background activity?
его нужно получить от текущей разметки getBackground()
его нужно получить от текущей разметки getBackground()
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Как передать данные background второстепеного активити
распишу всё подробно: есть главное активити с кнопкой, нажав на неё попадаешь на второе активити - в котором цвет фона меняется
public class Main2Activity extends Activity implements OnClickListener {
Button button1;
View Bground;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener(this);
Bground =(View) findViewById(R.id.Bground);
Bground.setBackgroundColor(Color.CYAN);
}
@Override
public void onClick(View v) {
Intent intent = new Intent(this,MainActivity.class);
startActivity(intent);
}
}
затем переходим (я сделаю ещё одну кнопку) в третье активити в котором есть editText, написав в нём что-то
public class Main3Activity extends Activity implements OnClickListener {
Button button1;
EditText editText1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main3);
button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener(this);
editText1 = (EditText)findViewById(R.id.editText1);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main3, menu);
return true;
}
@Override
public void onClick(View v) {
Intent intent = new Intent (this,MainActivity.class);
intent.putExtra("text", editText1.getText().toString());
startActivity(intent);
}
}
мы возвращаемся в главное активити, в главном активити есть textView в котором должны вывестись тыкие данные:
тект который был введён прежде (это я сделал)
текст должен принять тот цвет, которым закращен фон во втором активити - как тут быть?
public class Main2Activity extends Activity implements OnClickListener {
Button button1;
View Bground;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener(this);
Bground =(View) findViewById(R.id.Bground);
Bground.setBackgroundColor(Color.CYAN);
}
@Override
public void onClick(View v) {
Intent intent = new Intent(this,MainActivity.class);
startActivity(intent);
}
}
затем переходим (я сделаю ещё одну кнопку) в третье активити в котором есть editText, написав в нём что-то
public class Main3Activity extends Activity implements OnClickListener {
Button button1;
EditText editText1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main3);
button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener(this);
editText1 = (EditText)findViewById(R.id.editText1);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main3, menu);
return true;
}
@Override
public void onClick(View v) {
Intent intent = new Intent (this,MainActivity.class);
intent.putExtra("text", editText1.getText().toString());
startActivity(intent);
}
}
мы возвращаемся в главное активити, в главном активити есть textView в котором должны вывестись тыкие данные:
тект который был введён прежде (это я сделал)
текст должен принять тот цвет, которым закращен фон во втором активити - как тут быть?
Re: Как передать данные background второстепеного активити
задаёте разметке R.layout.main3 необходимый background и потом передаёте его в родительское окно. В чём именно загвоздка? во всём? или в получении цвета? или в передачи его? если в передачи то в каком виде у вас цвет хранится?
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Как передать данные background второстепеного активити
проблема скорее всего в получении, но знать нельзя, так что может быть проблема и в получении и в пересылке
вот в таком состоянии у меня находится цвет
Bground =(View) findViewById(R.id.Bground);
Bground.setBackgroundColor(Color.CYAN);
проблема в том что (мне так кажется) я не могу его принять в главном активити и привязать его к тексту
вот в таком состоянии у меня находится цвет
Bground =(View) findViewById(R.id.Bground);
Bground.setBackgroundColor(Color.CYAN);
проблема в том что (мне так кажется) я не могу его принять в главном активити и привязать его к тексту
Re: Как передать данные background второстепеного активити
Color.CYAN там же значения в int если не ошибаюсь, так и передавайте int в активити
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Как передать данные background второстепеного активити
так я так и делаю, но почему то после запуска эмулятора он не запускается говорит ошибка
Intent intent = getIntent();
String text = intent.getStringExtra("text");
textView1.setText( "text" );
Intent intent1 = getIntent();
int Fcolor = intent1.getExtras().getInt("textColor");
textView1.setTextColor(Fcolor);
я так понимаю, что проблема с кодом
помогите плиз
Intent intent = getIntent();
String text = intent.getStringExtra("text");
textView1.setText( "text" );
Intent intent1 = getIntent();
int Fcolor = intent1.getExtras().getInt("textColor");
textView1.setTextColor(Fcolor);
я так понимаю, что проблема с кодом
помогите плиз
Re: Как передать данные background второстепеного активити
у кого есть идеи?
Re: Как передать данные background второстепеного активити
И как же мне быть?
-
- Сообщения: 21
- Зарегистрирован: 30 янв 2012, 21:15
Re: Как передать данные background второстепеного активити
не могу понять:
в третьем активити ты передаешь первому активити интент с текстом, а вот где ты из второго активити передаешь цвет я не вижу.
Может создать глобальную переменную (переменные) в первом активити и присваивать им значения из других активити.
в третьем активити ты передаешь первому активити интент с текстом, а вот где ты из второго активити передаешь цвет я не вижу.
Может создать глобальную переменную (переменные) в первом активити и присваивать им значения из других активити.
Re: Как передать данные background второстепеного активити
main activity - принимает
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button1 = (Button)findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
Intent intent = getIntent();
String text = intent.getStringExtra("text");
textView1 = (TextView) findViewById(R.id.textView1);
textView1.setText( text );
второе активити отправляет
@Override
public void onClick(View v) {
Intent intent = new Intent();
switch (v.getId()) {
case R.id.red:
Bground.setBackgroundColor(Color.RED);
intent.putExtra("fcolor", Color.RED);
break;
case R.id.green:
Bground.setBackgroundColor(Color.GREEN);
intent.putExtra("fcolor", Color.GREEN);
break;
case R.id.yellow:
Bground.setBackgroundColor(Color.YELLOW);
intent.putExtra("fcolor", Color.YELLOW);
break;
case R.id.button1:
Intent intent1 = new Intent(this,MainActivity.class);
startActivity(intent1);
break;
}
}
}
третье активити тоже отправляет
@Override
public void onClick(View v) {
Intent intent = new Intent (this,MainActivity.class);
intent.putExtra("text", editText1.getText().toString());
startActivity(intent);
}
повторю вопрос : как придать цвет фона из 2 активити, тексту который передастся главному активити из третьего активити???
ребята нужно срочно..... пожалуйста
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button1 = (Button)findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
Intent intent = getIntent();
String text = intent.getStringExtra("text");
textView1 = (TextView) findViewById(R.id.textView1);
textView1.setText( text );
второе активити отправляет
@Override
public void onClick(View v) {
Intent intent = new Intent();
switch (v.getId()) {
case R.id.red:
Bground.setBackgroundColor(Color.RED);
intent.putExtra("fcolor", Color.RED);
break;
case R.id.green:
Bground.setBackgroundColor(Color.GREEN);
intent.putExtra("fcolor", Color.GREEN);
break;
case R.id.yellow:
Bground.setBackgroundColor(Color.YELLOW);
intent.putExtra("fcolor", Color.YELLOW);
break;
case R.id.button1:
Intent intent1 = new Intent(this,MainActivity.class);
startActivity(intent1);
break;
}
}
}
третье активити тоже отправляет
@Override
public void onClick(View v) {
Intent intent = new Intent (this,MainActivity.class);
intent.putExtra("text", editText1.getText().toString());
startActivity(intent);
}
повторю вопрос : как придать цвет фона из 2 активити, тексту который передастся главному активити из третьего активити???
ребята нужно срочно..... пожалуйста
Re: Как передать данные background второстепеного активити
Fima777 внятна можете сказать в чём проблема?
Из выше предоставленного кода вы в интент кладёте цвет типа int, в чём проблема то?
Если есть какая то ошибка то предоставляйте лог ошибок и код где она происходит.но почему то после запуска эмулятора он не запускается говорит ошибка
Из выше предоставленного кода вы в интент кладёте цвет типа int, в чём проблема то?
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
-
- Сообщения: 21
- Зарегистрирован: 30 янв 2012, 21:15
Re: Как передать данные background второстепеного активити
Если я правильно понял, то ты во втором активити создаешь интент и кладешь в него цвет, в третьем активити, ты создаешь еще один интент и кладешь в него текст и передаешь mainActivity т , НО ведь цвета в этом интенте нету.
Я еще не опытен, но наверное тебе в третьем активити нужно считать цвет из второй активити в промежуточную переменную, и добавить эту переменную в интент, который ты создаешь в третьей активити вместе с текстом , ну а в mainActivity считать обе переменные.
main activity - принимает
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button1 = (Button)findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
Intent intent = getIntent();
String text = intent.getStringExtra("text");
int color=intent.getIntExtra("fcolor");
textView1 = (TextView) findViewById(R.id.textView1);
textView1.setText( text );
textView1.setColor(color);
второе активити отправляет
@Override
public void onClick(View v) {
Intent intent = new Intent();
switch (v.getId()) {
case R.id.red:
Bground.setBackgroundColor(Color.RED);
intent.putExtra("fcolor", Color.RED);
break;
case R.id.green:
Bground.setBackgroundColor(Color.GREEN);
intent.putExtra("fcolor", Color.GREEN);
break;
case R.id.yellow:
Bground.setBackgroundColor(Color.YELLOW);
intent.putExtra("fcolor", Color.YELLOW);
break;
case R.id.button1:
Intent intent1 = new Intent(this,MainActivity.class);
startActivity(intent1);
break;
}
}
}
третье активити тоже отправляет
...
Intent intentOfMain2=getIntent();
int intermediate = getIntExtra("fcolor");
@Override
public void onClick(View v) {
Intent intent = new Intent (this,MainActivity.class);
intent.putExtra("text", editText1.getText().toString());
intent.putExtra("fcolor",intermediate);
startActivity(intent);
}
[/code]
Я еще не опытен, но наверное тебе в третьем активити нужно считать цвет из второй активити в промежуточную переменную, и добавить эту переменную в интент, который ты создаешь в третьей активити вместе с текстом , ну а в mainActivity считать обе переменные.
main activity - принимает
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button1 = (Button)findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
Intent intent = getIntent();
String text = intent.getStringExtra("text");
int color=intent.getIntExtra("fcolor");
textView1 = (TextView) findViewById(R.id.textView1);
textView1.setText( text );
textView1.setColor(color);
второе активити отправляет
@Override
public void onClick(View v) {
Intent intent = new Intent();
switch (v.getId()) {
case R.id.red:
Bground.setBackgroundColor(Color.RED);
intent.putExtra("fcolor", Color.RED);
break;
case R.id.green:
Bground.setBackgroundColor(Color.GREEN);
intent.putExtra("fcolor", Color.GREEN);
break;
case R.id.yellow:
Bground.setBackgroundColor(Color.YELLOW);
intent.putExtra("fcolor", Color.YELLOW);
break;
case R.id.button1:
Intent intent1 = new Intent(this,MainActivity.class);
startActivity(intent1);
break;
}
}
}
третье активити тоже отправляет
...
Intent intentOfMain2=getIntent();
int intermediate = getIntExtra("fcolor");
@Override
public void onClick(View v) {
Intent intent = new Intent (this,MainActivity.class);
intent.putExtra("text", editText1.getText().toString());
intent.putExtra("fcolor",intermediate);
startActivity(intent);
}
[/code]
Re: Как передать данные background второстепеного активити
после того как в главном активити я добавляю для получения:
intent = getIntent();
int Mycolor = intent.getExtras().getInt("fColor");
textView1.setTextColor(Mycolor);
мне выдаёт такое:
the apllication has stopped unexpectedly.Please try again
intent = getIntent();
int Mycolor = intent.getExtras().getInt("fColor");
textView1.setTextColor(Mycolor);
мне выдаёт такое:
the apllication has stopped unexpectedly.Please try again
Re: Как передать данные background второстепеного активити
[quote="Jack_killer"]Если я правильно понял, то ты во втором активити создаешь интент и кладешь в него цвет, в третьем активити, ты создаешь еще один интент и кладешь в него текст и передаешь mainActivity т , НО ведь цвета в этом интенте нету.
Я еще не опытен, но наверное тебе в третьем активити нужно считать цвет из второй активити в промежуточную переменную, и добавить эту переменную в интент, который ты создаешь в третьей активити вместе с текстом , ну а в mainActivity считать обе переменные.
почему то не принимает getIntExtra
пишет
The method getIntExtra(String, int) in the type Intent is not applicable for the arguments (String)
Я еще не опытен, но наверное тебе в третьем активити нужно считать цвет из второй активити в промежуточную переменную, и добавить эту переменную в интент, который ты создаешь в третьей активити вместе с текстом , ну а в mainActivity считать обе переменные.
почему то не принимает getIntExtra
пишет
The method getIntExtra(String, int) in the type Intent is not applicable for the arguments (String)
-
- Сообщения: 21
- Зарегистрирован: 30 янв 2012, 21:15
Re: Как передать данные background второстепеного активити
Это потому что при первом запуске mainActivity у тебя еще нет данных в интенте. Сделай проверку:Fima777 писал(а):после того как в главном активити я добавляю для получения:
intent = getIntent();
int Mycolor = intent.getExtras().getInt("fColor");
textView1.setTextColor(Mycolor);
мне выдаёт такое:
the apllication has stopped unexpectedly.Please try again
Код: Выделить всё
intent = getIntent();
if(intent.getExtras()!=null){
int Mycolor = intent.getExtras().getInt("fColor");
textView1.setTextColor(Mycolor);
}
там просто нужно добавлять данные по умолчанию, то-есть если при вызове этих данных там их не окажется, то будут применены данные по умолчанию.Fima777 писал(а):почему то не принимает getIntExtra
пишет
The method getIntExtra(String, int) in the type Intent is not applicable for the arguments (String)
Вот можешь посмотреть мою реализацию, может поможет. проект
Re: Как передать данные background второстепеного активити
решил всё с помощью startActivityForResult