2015-05-22 5 views
0

Я хочу перенести данные своего «результата» с моей первой (основной) активности на активность Custaddress, которая имеет текст редактирования для деталей клиента, а затем отправляется по электронной почте. Тексты электронной почты/редактирования работают отлично, но я хочу, чтобы добавить в "result.toString" в строку тела электронной почты. Как передать «результат» во вторую активность? Я верю, что это что-то связано с Аргом? Вот мой код из первого действия ..Как перенести данные из одной активности в другую на Android?

DecimalFormat decimalFormat = new DecimalFormat(COMMA_SEPERATED); 
      result.append("\nTotal: £"+decimalFormat.format(totalamount)); 
    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(MainActivity.this); 
     alertDialogBuilder.setMessage(result.toString()); 
     alertDialogBuilder.setTitle("YOUR ORDER"); 
     alertDialogBuilder.setPositiveButton("Accept", 
     new DialogInterface.OnClickListener() { 

     @Override 
     public void onClick(DialogInterface arg0, int arg1) { 
      //do what you want to do if user clicks ok 
      //Intent intent = new Intent(context, Custaddress.class); 
      // startActivity(intent); 
      Intent custaddress = new Intent(getApplicationContext(),com.example.frytest.Custaddress.class); 
      startActivity(custaddress); 
     } 
     }); 
     alertDialogBuilder.setNegativeButton("Decline", 
     new DialogInterface.OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      //do what you want to do if user clicks cancel. 
     } 
     }); 

     AlertDialog alertDialog = alertDialogBuilder.create(); 
     alertDialog.show(); 
+0

[HTTP://stackoverflow.com/questions/11303887/how-can-i-transfer-the-data-between-two-activities-in-android](http://stackoverflow.com/questions/11303887/how-can-i- transfer-the-data-between-two-activities-in-android) –

+1

Возможный дубликат [Как отправить объект из одной активности Android в другой с помощью намерений?] (Http://stackoverflow.com/questions/2139134/how-to-send-an-object-from-one-android-activity -to-another-using-intents) – 2Dee

+0

который почтовый клиент вы используете? или у вас есть собственное окно для композитора электронной почты? –

ответ

1

записать его в деятельность, передавая данные

Intent custaddress = new Intent(getApplicationContext(),com.example.frytest.Custaddress.class); 
custaddress.putExtra("key",value); 
startActivity(custaddress); 

Написать ниже код в деятельности, ловя данные

Intent intent=getIntent(); 
String mString=intent.getStringExtra("key"); 

надеюсь, что это поможет вам

+0

После того mString финал, это работает отлично !! Спасибо Извините за поздний ответ! – user1641906

0

Вы должны использовать намерение (click here):

Intent intent = new Intent(getBaseContext(), CustAdrresActivity.class); 
intent.putExtra("text", mytext); 
startActivity(intent); 
+0

Спасибо - но, конечно, есть и код, требуемый во второй (получающей) активности? – user1641906

0

Вам просто нужно заменить строки:

Intent custaddress = new Intent(getApplicationContext(),com.example.frytest.Custaddress.class); 
startActivity(custaddress); 

с этими тремя линиями:

Intent custaddress = new Intent(getApplicationContext(),com.example.frytest.Custaddress.class); 
custaddress.putExtra("result", result.toString()); 
startActivity(custaddress); 

, а затем, когда вы открываете новый вид деятельности (в вашем случае Custaddress деятельности), вы должны сделать следующее, чтобы получить result

Bundle extras = getIntent().getExtras(); 
if (extras != null) { 
    String value = extras.getString("result"); 
}  
+0

Приходит с ошибкой - «Нельзя ссылаться на результат не конечной локальной переменной«, определяемый в охватывающей области ».Это находится на 2-й строке ваших первых строк кода. – user1641906

+0

просто объявите переменную результата как «final» –

+1

Ответ и вопросы уже есть, почему ppl снова хочет ответить на такие вопросы, пожалуйста, укажите ссылку или такие вопросы чтобы быть остановленным и отмеченным как дублирующее, пусть искатель делает какой-то реальный поиск, если ему нужно учиться – DJphy

0

Вы должны добавить Extra в Intent объект, который вы передаете в startActivity (намерения). Пример

String value = "String i want to send to next activity" 
Intent intent = new Intent(getApplicationContext(),com.example.frytest.Custaddress.class); 
intent.putExtra("KEY", value); 
startActivity(intent); 

В классе активность Custaddress.java вам нужно, чтобы получить данные из объекта Bundle, которые вы получаете в качестве параметра в (пачке Bundle) OnCreate метод

Bundle extras = getIntent().getExtras(); 
if (extras != null) { 
    // get data via the key 
    String valueFromPreviousActivity = extras.getString("KEY"); 

    if(valueFromPreviousActivity != null){ 
     // do something with the data 
    } 
} 
+0

Извините - вторая часть - где бы он поместился в моем коде Custaddress ?? @Override общественной пустоты OnCreate (Пачка savedInstanceState) { \t \t \t super.onCreate (savedInstanceState); setContentView (R.layout.cust1_address); final EditText name = (EditText) findViewById (R.id.edittext); final EditText addy = (EditText) findViewById (R.id.edittext1); final EditText cell = (EditText) findViewById (R.id.edittext2); final EditText questions = (EditText) findViewById (R.id.edittext3); Кнопка email = (кнопка) findViewById (R.id.button1); email.setOnClickListener (новый View.OnClickListener() { – user1641906

+0

Извините за запутанный код – user1641906

+0

добавить его после того, как super.onCreate (savedInstanceState);! Вызов метода –

0

Через код ниже мы можем послать значения между деятельностью

использовать приведенный ниже код в родительской активности

Intent myintent=new Intent(Info.this, GraphDiag.class).putExtra("<StringName>", value); 
startActivity(myintent); 

использовать приведенный ниже код в детской активности

String s= getIntent().getStringExtra(<StringName>); 
Смежные вопросы