0

I am new to android development I call an intent now how can i get result from called activity can any one tell me how to perform this task ? i have called intent like.

Intent I = new Intent (this ,abc.class); startActivity(i);

thanks

Dev 9
  • 263
  • 2
  • 5

4 Answers4

3

Use startActivityForResult and then override onActivityResult in your FirstActivity.

In FirstActivity

Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
startActivityForResult(intent, 2);// Activity is started with requestCode 2  

Override onActivityResult

 @Override  
       protected void onActivityResult(int requestCode, int resultCode, Intent data)  
       {  
                 super.onActivityResult(requestCode, resultCode, data);  

                  // check if the request code is same as what is passed  here it is 2  
                   if(requestCode==2)  
                         {  
                            String message=data.getStringExtra("MESSAGE");   
                            Log.i("Message is",message);
                            // logs Testing

                         }  

     }

In SecondAcivity

Intent intent=new Intent();  
intent.putExtra("MESSAGE","Testing");  
setResult(2,intent);  
finish();//finishing activity  

Reference to the docs:

http://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent, int)

Example:

http://www.javatpoint.com/android-startactivityforresult-example

Raghunandan
  • 132,755
  • 26
  • 225
  • 256
1

For going to second activity use startActivityForResult in your firstclass

Intent callIntent = new Intent(FirstClass.this, SecondClass.class);
startActivityForResult(callIntent, 1);

then override onActivityResult method in your first class like this

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     // Check which request we're responding to
     if (requestCode == 1) {
         // Make sure the request was successful
         if (resultCode == RESULT_OK) {


            // get values from data
         }
     } }

In your second class do this for returning back, if you want to send something to first class. Store this in your intent.

Intent result = new Intent(); setResult(Activity.RESULT_OK, result);
finish();
Rizwan
  • 1,461
  • 12
  • 26
0

hi you can get result calling activity

Start activity with startActivityForResult(intent, 0); add below method in calling activity

 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 0) {
        if (resultCode == RESULT_OK) {

            // do your task 

        } else if (resultCode == RESULT_CANCELED) {
            // do your task 
        }
    }

}
Ando Masahashi
  • 3,112
  • 2
  • 24
  • 41
0

In your main Class....

static final int CODE_REQUEST = 1;  // The request code

....

Intent pickContactIntent = new Intent(MainClass.this, CallingClassName.class);
startActivityForResult(pickContactIntent, CODE_REQUEST);

..........

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // Check which request we're responding to
    if (requestCode == PICK_CONTACT_REQUEST) {
        // Make sure the request was successful
        if (resultCode == RESULT_OK) {
            // The user picked a contact.
            // The Intent's data Uri identifies which contact was selected.

            // Do something with the contact here (bigger example below)
        }
    }
}

In your calling class

Intent result = new Intent();
setResult(Activity.RESULT_OK, result);
finish()
Venkatesh S
  • 5,466
  • 1
  • 25
  • 30