How do i send multiple Integers to a new activity?
How do i send multiple Integers to a new activity?
I am pretty new at the whole android programming so please bare with me, I have a way that i know is not the best way of sending them over rite now but im sending them as strings and converting them to an Int on the reciver side, the problem is when i do the conversion it crashes on my phone.... this is what i have on my sender side:
public void sendMessage(View view) { // Do something in response to button Intent intent = new Intent(this, PayTracker.class); // hourly wage send EditText editText = (EditText) findViewById(R.id.hourly_wage); String message1 = editText.getText().toString(); intent.putExtra(MESSAGE_1, message1); // ot wage send EditText editText1 = (EditText) findViewById(R.id.ot_wage); String message2 = editText1.getText().toString(); intent.putExtra(MESSAGE_2, message2); // hours per day send EditText editText2 = (EditText) findViewById(R.id.hours_day); String message3 = editText2.getText().toString(); intent.putExtra(MESSAGE_3, message3); // start new activity startActivity(intent);
And this is what is on my reciving side:
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_pay_tracker); getActionBar().setDisplayHomeAsUpEnabled(true); // Receive messages from options page Intent intent = getIntent(); String message1 = intent.getStringExtra(Options.MESSAGE_1); String message2 = intent.getStringExtra(Options.MESSAGE_2); String message3 = intent.getStringExtra(Options.MESSAGE_3); // convert string to integer int HW = Integer.valueOf(message1); int OTW = Integer.valueOf(message2); int HPD = Integer.valueOf(message3);
Ive tested everything and its the conversion that is causing the app to crash, i was hoping somebody could help me make it not crash or give me a whole new way sending an int to my second activity insted of sending a string and converting it. Thank you!
=======================================================================
Here is my new code with all your help!
Sending:
public void sendMessage(View view) { // Do something in response to button Intent intent = new Intent(this, PayTracker.class); // Gather text from text boxes EditText editText = (EditText) findViewById(R.id.hourly_wage); EditText editText1 = (EditText) findViewById(R.id.ot_wage); EditText editText2 = (EditText) findViewById(R.id.hours_day); //Create String from text String message1 = editText.getText().toString(); String message2 = editText1.getText().toString(); String message3 = editText2.getText().toString(); //Convert String to Int int HW = 0, OTW = 0, HPD = 0; try{ HW = Integer.valueOf(message1); OTW = Integer.valueOf(message2); HPD = Integer.valueOf(message3); } catch(NumberFormatException nfe){ //do something else here //for e.g. initializing default values to your int variables } // Send Integers to PayTracker.java intent.putExtra(MESSAGE_HW, HW); intent.putExtra(MESSAGE_OTW, OTW); intent.putExtra(MESSAGE_HPD, HPD); // start new activity startActivity(intent); }
Receiving side:
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_pay_tracker); getActionBar().setDisplayHomeAsUpEnabled(true); // Receive messages from options page Intent intent = getIntent(); int HW = intent.getIntExtra(Options.MESSAGE_HW, 0); int OTW = intent.getIntExtra(Options.MESSAGE_OTW, 0); int HPD = intent.getIntExtra(Options.MESSAGE_HPD, 0); // set textview TextView textView = (TextView) this.findViewById(R.id.yourpay); textView.setText(String.valueOf(HW)); }
Answer by NagarjunaReddy for How do i send multiple Integers to a new activity?
Pass data from one activity to another activity "String" value.useing intent
Activityone
Intent intent = new Intent(Activityone.this,Activitytwo.class) intent.putExtra("TYPE", type); startActivity(intent);
Activitytwo
Intent intent =getIntent(); Receivevalue =intent.getExtras().getString("TYPE"); (OR) Receivevalue = getIntent().getExtras().getString("TYPE");
Pass data from one activity to another activity "Integer" value.useing intent
Activityone
Intent intent = new Intent(Activityone.this,Activitytwo.class) intent.putExtra("TYPE", type); startActivity(intent);
Activitytwo
Intent intent = getIntent(); value = intent.getIntExtra("TYPE", 0); // Type = intent.getIntExtra(name, defaultValue);
Answer by waqaslam for How do i send multiple Integers to a new activity?
Encapsulate the conversion part within try/catch block, because your strings may not be convertible into integer values.
int HW, OTW, HPD; try{ HW = Integer.valueOf(message1); OTW = Integer.valueOf(message2); HPD = Integer.valueOf(message3); } catch(NumberFormatException nfe){ //do something else here //for e.g. initializing default values to your int variables }
*Or more appropriately, pass the integer values in your sending part and receive them as it is.
Answer by rosu alin for How do i send multiple Integers to a new activity?
Try something like this on the send side:
String message1 = editText.getText().toString(); intent.putExtra("MESSAGE_1", message1); String message2 = editText1.getText().toString(); intent.putExtra("MESSAGE_2", message2); String message3 = editText2.getText().toString(); intent.putExtra("MESSAGE_3", message3);
Receive side:
if (getIntent() != null) { if (getIntent().getExtras() != null) { String mess1 = getIntent().getExtras().getString("MESSAGE_1"); String mess2 = getIntent().getExtras().getString("MESSAGE_2"); String mess3 = getIntent().getExtras().getString("MESSAGE_3"); } }
Answer by Jason L for How do i send multiple Integers to a new activity?
You don't need to pass Integers
as Strings
to be converted back in the receiving Activity
. Intents
can hold Integers
as well as Strings
.
Simply add your data like you normally would:
int foo = 5; Intent intent = new Intent(this, bar.class); intent.putExtra("foobar", foo);
And then retrieve your int
from the intent in the receiving Activity
as follows.
Intent intent = getIntent(); int foo = intent.getIntExtra("foobar", 0);
Intents
can hold more data than just Strings
. In fact, take a look at the documentation. You can see that Intents can hold Longs
, Doubles
, Floats
, Parcelables
, etc.
Answer by GoCrazy for How do i send multiple Integers to a new activity?
You can achieve your goal using following code
In Your Calling Activity
Intent value = new Intent(YourCallingActivity.this,DestinationActivity.class); value.putExtra("integerone", integeronevalue); value.putExtra("integertwo", integertwovalue); value.putExtra("integerthree", integertwovalue); startActivity(value);
In Destination Activity
int integerone = getIntent().getExtras().getInt("integerone"); int integertwo = getIntent().getExtras().getInt("integertwo"); int integerthree = getIntent().getExtras().getInt("integerthree");
Hope it helps
Fatal error: Call to a member function getElementsByTagName() on a non-object in D:\XAMPP INSTALLASTION\xampp\htdocs\endunpratama9i\www-stackoverflow-info-proses.php on line 72
0 comments:
Post a Comment