由入口Activity启动其他Activity有两种方法:startActivity(Intent intent)与startActivityForResult(Intent intent,int requestCode)

        假设从ActivityOne启动ActivityTwo。
    1,startActivity(Intent intent):只启动其他Activity。
        使用:首先需在AndroidManiFest中配置
        <activity android:name=".ActivityTwo"/>
        Java代码:Intent intent=new Intent(ActivityOne.this,ActivityTwo.class);
                        startActivity(intent);
    2,startActivityForResult(Intent intent,int requestCode):以指定的请求码(requestCode)启动Activity,而且程序将会获取新启动的Activity返回的结果(通过onActivityResult(int requestCode, int resultCode, Intent intent)方法获取
 
        requestCode:请求码,该参数代表了启动ActivityTwo的请求码。这个请求码的值由开发者根据业务自行设置,用于标识请求来源。(ActivityOne中可能包含多个按钮,并调用多个startActivityForResult()方法来打开多个不同的Acticity(ActivityTwo,ActivityThree.....),当这些新打开的Activity关闭后,系统都将回调ActivityOne中的onActivityResult()方法,为了知道这个方法是由哪个请求的结果所触发,我们就可以用请求码进行判断)
 
        resultCode:结果码,在ActivityTwo中(ActicityTwo.this.setResult(int resultCode,Intent intnt))设置结果码,用于判别返回的数据来自哪个Acticity。
 
        intent:可以通过这个intent获取ActivityTwo所返回的结果。(因为该intent是ActivityOne中对应的Intent,但是此时通过ActivityTwo绑定了数据))。
        使用:也需要在AndroidManiFest中配置
    <activity android:name=".ActivityTwo"/>
      ActivityOne中启动ActivityTwo:           
Intent intent=new Intent(ActivityOne.this,ActivityTwo.class);
startActivityForResult(intent,0);

    ActivityOne中获取ActivityTwo返回的结果:


protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//当requestCode,resultCode同时为0时,也就是处理特定的结果
if(requestCode==0&&resultCode==0){
//取出Intent里面的Extras数据
Bundle bddata=data.getExtras();
//取出Bundlle中的数据
String resultCity=bddata.getString("city");
//修改city文本框的内容
edt.setText(resultCity);
}
}

ActivityTwo中设置返回结果与结果回码:


//获取启动该Activity之前的Activity对应的Intent
Intent intent=getIntent();
intent.putExtra(
"city",cities[i][i1]);
//设置ActivityTwo的结果码,并设置结束之后退回的Activity
ActivityTwo.this.setResult(0,intent);
ActivityTwo.this.finish();

示例:
创建第一个入口启动的Activity:(ActivityOne)
public class MainActivity extends AppCompatActivity {
private Button btn;
private EditText edt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.btn= (Button) findViewById(R.id.btn);
this.edt= (EditText) findViewById(R.id.edt);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(MainActivity.this,SelectCityActivity.class);
startActivityForResult(intent,0);
}
});
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//当requestCode,resultCode同时为0时,也就是处理特定的结果
if(requestCode==0&&resultCode==0){
//取出Intent里面的Extras数据
Bundle bddata=data.getExtras();
//取出Bundlle中的数据
String resultCity=bddata.getString("city");
//修改city文本框的内容
edt.setText(resultCity);
}
}
}
创建第二个要启动的Acticity,(ActivityTwo)

public class SelectCityActivity extends ExpandableListActivity {
private String[] provinces=new String[]{"四川","广东","湖南"};
private String[][] cities=new String[][]{
{"成都","遂宁","蓬溪","南充"},
{"广州","深圳","南宁","珠海"},
{"长沙","岳阳","衡阳","怀化"},
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ExpandableListAdapter adapter=new BaseExpandableListAdapter() {
//获取(provinces)组数
@Override
public int getGroupCount() {

return provinces.length;
}
//获取子(城市)数
@Override
public int getChildrenCount(int i) {
return cities[i].length;
}
//获取指定组位置处的组数据
@Override
public Object getGroup(int i) {
return provinces[i];
}
//获取子(cities)列表项
@Override
public Object getChild(int i, int i1) {
return cities[i][i1];
}
//获取分组(provinces)Id
@Override
public long getGroupId(int i) {

return i;
}
//获取子(cities)列表项ID
@Override
public long getChildId(int i, int i1) {
return i1;
}
//是否存在稳定的ID
@Override
public boolean hasStableIds() {
return true;
}
//该方法决定每个组选项的外观,即在此方法中对组布局进行设置
@Override
public View getGroupView(int i, boolean b, View view, ViewGroup viewGroup) {
LinearLayout ll=new LinearLayout(SelectCityActivity.this);
ll.setOrientation(LinearLayout.HORIZONTAL);
ImageView logo=new ImageView(SelectCityActivity.this);
ll.addView(logo);
TextView textView=getTextView();
textView.setText(getGroup(i).toString());
ll.addView(textView);
return ll;
}
//该方法决定每个子选项的外观
@Override
public View getChildView(int i, int i1, boolean b, View view, ViewGroup viewGroup) {
TextView textView=getTextView();
textView.setText(getChild(i,i1).toString());
return textView;
}

@Override
public boolean isChildSelectable(int i, int i1) {
return true;
}
//设置并返回得到一个TextView
private TextView getTextView(){
AbsListView.LayoutParams lp=new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,64);
TextView textView=new TextView(SelectCityActivity.this);
textView.setLayoutParams(lp);
textView.setGravity(Gravity.CENTER_VERTICAL|Gravity.LEFT);
textView.setPadding(36,0,0,0);
textView.setTextSize(20);
return textView;
}
};
setListAdapter(adapter);
getExpandableListView().setOnChildClickListener(
new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView expandableListView, View view, int i, int i1, long l) {
//获取启动该Activity之前的Activity对应的Intent
Intent intent=getIntent();
intent.putExtra("city",cities[i][i1]);
//设置该SelectCityActivity的结果码,并设置结束之后退回的Activity
SelectCityActivity.this.setResult(0,intent);

SelectCityActivity.this.finish();
return false;

}
}
);
}
}