3)在回调方法当中实现逻辑
*/
public class MainActivity extends Activity implements OnClickListener {
private EditText et_main_message;
private Button btn_main_start1;
private Button btn_main_start2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化视图对象
et_main_message = (EditText) findViewById(R.id.et_main_message);
btn_main_start1 = (Button) findViewById(R.id.btn_main_start1);
btn_main_start2 = (Button) findViewById(R.id.btn_main_start2);
//设置点击监听
btn_main_start1.setOnClickListener(this);
btn_main_start2.setOnClickListener(this);
}
@Override
public void onClick(View v) {//v就是发生事件的视图对象(操作的视图)
if(v==btn_main_start1){
Toast.makeText(this, “一般启动”, 0).show();
//创建Intent对象(显示)
Intent intent = new Intent(this, SecondActivity.class);
//通过intent额外携带数据
String message = et_main_message.getText().toString();
intent.putExtra(“MESSAGE”,message);
//启动Activity
startActivity(intent);
}else if(v==btn_main_start2){
Toast.makeText(this, “带回调的启动”, 0).show();
}
}
}
在SecondActivity当中
1)得到intent对象
2)通过intent对象读取额外数据
3)显示到EditText当中
package com.itzheng.lo2_activity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
public class SecondActivity extends Activity {
private EditText et_second_message;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
et_second_message = (EditText) findViewById(R.id.et_second_message);
//得到Intent对象
Intent intent = getIntent();
//通过intent读取额外数据
String message = intent.getStringExtra(“MESSAGE”);
//显示到EditText
et_second_message.setText(message);
}
}
测试
[](()3)实现一般返回
a、在显示Second界面的时候,Main界面其实还在,只是被覆盖了
b、关闭当前界面(回到上一个界面):finish()
修改activity_second.xml
修改SecondActivity类
[](()4)实现带回调的启动与结果返回
在MainActivity当中
else if (v == btn_main_start2) {
Toast.makeText(this, “带回调的启动”, 0).show();
// 创建Intent对象(显示)
Intent intent = new Intent(this, SecondActivity.class);
// 通过intent额外携带数据
String message = et_main_message.getText().toString();
intent.putExtra(“MESSAGE”, message);
// 带回调启动Activity
int requestCode = 2;// 请求码
startActivityForResult(intent, requestCode);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
// 判断code
if (requestCode == 2 && resultCode == 3) {
// 从data当中取出数据
String result = data.getStringExtra(“RESULT”);
// 显示出来
et_main_message.setText(result);
}
}
在SecondActivity
public void back2(View v){
//保存结果,准备一个带额外数据的intent对象
Intent data = new Intent();
data.putExtra(“RESULT”, et_second_message.getText().toString());
int resultCode = 3;//结果码
//设置返回的结果
setResult(resultCode,data);
//关闭当前界面
finish();
}
测试
[](()(5)启动一个Activity的流程图
[](()2、Activity的生命周期
[](()(1)安卓界面的四种状态
[](()(2)Activity的方法
[](()(3)测试应用理解上诉方法
好文推荐
发表评论