1. 如何在Activity中启动另一个Activity?
(1)在Android Mainifest 文件中声明Activity
格式如下:
(2)调用startActivity(Intent intent)方法
Intent intent=newIntent(MainActivity.this,NextActivity.class);
startActivity(Intent intent);
2把数据从一个Activity传到另一个Activity
(1) 直接采用Intent封装
a.发送部分
Intentintent=newIntent(MainActivity.this,NextActivity.class);
Stringa=edittext1.getText().toString().trim();
Stringb=edittext2.getText().toString().trim();
intent.putExtra("message",a+"+"+b+"=");
startActivity(intent);
b.接收部分
Intent intent = getIntent();
String message = intent.getStringExtra("message");
shizi.setText(message);
完整代码如下:
MainActivity:
packagecom.example.firstactivity;
importandroid.os.Bundle;
importandroid.app.Activity;
importandroid.content.Intent;
importandroid.view.View;
importandroid.widget.Button;
importandroid.widget.EditText;
publicclass MainActivity extends Activity {
private Button button1;
private EditText edittext1,edittext2,edittext3;
@Override
protected void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edittext1=(EditText)findViewById(R.id.editText1);
edittext2=(EditText)findViewById(R.id.editText2);
edittext3=(EditText)findViewById(R.id.edittext3);
button1=(Button)findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v){
// TODOAuto-generated method stub
Intent intent=newIntent(MainActivity.this,NextActivity.class);
Stringa=edittext1.getText().toString().trim();
Stringb=edittext2.getText().toString().trim();
intent.putExtra("message",a+"+"+b+"=");
startActivityForResult(intent,1000);
}
});
}
@Override
protected void onActivityResult(intrequestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode,resultCode, data);
if (requestCode == 1000 &&resultCode == 1001) {
//从子窗口中获取返回结果
String result_value =data.getStringExtra("result");
edittext3.setText(result_value);
}
}
}
NextActivity:
packagecom.example.firstactivity;
importandroid.app.Activity;
importandroid.content.Intent;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.Button;
importandroid.widget.EditText;
importandroid.widget.TextView;
publicclass NextActivity extends Activity {
private TextView shizi;
private Button button2;
private EditText result ;
public NextActivity() {
// TODO Auto-generated constructorstub
}
@Override
protected void onCreate(BundlesavedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.next);
button2 =(Button)this.findViewById(R.id.button2);
result =(EditText)this.findViewById(R.id.result);
shizi =(TextView)this.findViewById(R.id.shizi);
Intent intent = getIntent();
String message =intent.getStringExtra("message");
shizi.setText(message);
button2.setOnClickListener(newView.OnClickListener() {
@Override
public void onClick(View v){
// TODOAuto-generated method stub
String value =result.getText().toString().trim();
Intent intent =new Intent();
intent.putExtra("result",value);
//设置回传的意图
setResult(1001,intent);
finish();//结束activity的生命周期
}
});
}
}
(2)采用Bundle封装
a.发送部分
Bundle bundle=new Bundle();
Bundle.putString(“name”,name);
Intent.putExtras(bundle);
startActivity(intent);
b.接收部分
Bundle bundle=this.getIntent().getExtras();
String name=bundle.getString(“name”);
(EditText)et.setText(name);