starting sub activity
TRANSCRIPT
-
8/3/2019 Starting Sub Activity
1/4
I am going to show how to use it.
There are 3 things which you should do:
1) you need to run your subactivity via this method
startActivityForResult(Intent i, int requestCode);
2) in parent activity you should override method
onActivityResult(int requestCode, int resultCode, Intent data)
3) in subactivity you need to put result and finish this activity
setResult(int resultCode, Intent data);
finish();
As you see it is simple.
Now I am going to show whole example:
First off all need to create Parent (Main) activity:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
/**
* Parent activty
*
* @author FaYnaSoft Labs
*/
public class Main extends Activity {
protected static final int SUB_ACTIVITY_REQUEST_CODE = 100;
TextView tv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv = (TextView) findViewById(R.id.textId);
tv.setText("TextView element");
Button b = (Button) findViewById(R.id.btnId);
-
8/3/2019 Starting Sub Activity
2/4
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(Main.this,
SubActivity.class);startActivityForResult(i, SUB_ACTIVITY_REQUEST_CODE);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == SUB_ACTIVITY_REQUEST_CODE){
Bundle b = data.getExtras();
tv.setText(b.getString("TEXT"));
}
}
}
As you see here we start activity for result and we override onActivityResult method.
Also simple main layout:
Now we need sub activity:
import android.app.Activity;
import android.content.Intent;
-
8/3/2019 Starting Sub Activity
3/4
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class SubActivity extends Activity {public final static int SUCCESS_RETURN_CODE = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.subactivity);
final EditText editView = (EditText) findViewById(R.id.editId);
editView.setText("SubActivity");
Button button = (Button) findViewById(R.id.btnId);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
Bundle b = new Bundle();
b.putString("TEXT", editView.getText().toString());
intent.putExtras(b);
setResult(SUCCESS_RETURN_CODE, intent);
finish();
}
});}
}
Here we put result for main activity.
Also layout for subactivity
-
8/3/2019 Starting Sub Activity
4/4
As you see it is very easy to get data from sub activity.