Blog coding and discussion of coding about JavaScript, PHP, CGI, general web building etc.

Thursday, October 20, 2016

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

Related Posts:

0 comments:

Post a Comment

Popular Posts

Fun Page

Powered by Blogger.