Activity的启动
(1)使用Intent启动Activity
通过监听器,监听空间的动作来实现从一个J界面也就是Activity跳转至另一个Activity。
Button btn = (Button)findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ntent intent = new Intent(getApplicationContext(),FrameLayoutActivity.class);
startActivity(intent);
}
});
(2)带返回值得启动
带返回值的启动,我们可以举例来说明一下。假如现在我们有一个主界面MainActivity,从主界面通过一个按键进入另一个界面SecondActivity,我们进入SecondActivityj界面,在SecondActivity界面中输入文字,点击按钮后退出SecondActivity界面,输入的文字显示在MainActivity中。这就是带返回值的启动,现在我们用代码来实现下哈……
//MainActivity
public class MainActivity extends Activity {
//定义文本框,显示传回的数据
private TextView textView;
//定义按钮,点击后进入SecondActivity界面。
private Button button2;
private Intent intent_second;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//定义按钮启动SecondActivity界面。
button2 = (Button) findViewById(R.id.button_startSecond);
//定义文本框,接收来自SecondActivity的数据。
textView = (TextView) findViewById(R.id.textView);
//定义一个监听器,监听按钮控件动作。
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//创建Intent对象,实现从一个Activity到另一个Activity的跳转。
intent_second = new Intent(MainActivity.this, SecondActivity.class);
//启动Intent,并设置requestCode.
startActivityForResult(intent_second, 0x11);
}
});
}
//重写onActivityResult方法,回收来自上一个Activity的resultCode和传递来的数据data.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
//获得上一个Activity的数据并将其转化为String类型。
String s = data.getStringExtra("backData");
//将数据写入文本处。
textView.setText(s);
}
}
}
//SecondActivity
public class SecondActivity extends Activity {
//定义按钮,点击后发送编辑框中数据给MAinActivity。
private Button button_back;
//定义编辑框,输入文本。
private EditText edit;
private Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
//获得MainActivity启动SecondActivity的Intent对象。
intent = getIntent();
//创建按钮的点击事件,点击后发送数据给MAinActivity。
button_back = (Button) findViewById(R.id.button_back);
edit = (EditText) findViewById(R.id.edit);
button_back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//通过Extra传送数据。
intent.putExtra("backData",edit.getText().toString());
//设置resultCode。
setResult(RESULT_OK, intent);
//关闭SecondActivity界面。
SecondActivity.this.finish();
}
});
}
}
步骤总结:
- 启动第一个界面的startActivityResult方法,设置好requestCode。
- 第二个界面首先获得第一个界面传递的Intent对象赋值给自己的Intent对象,然后将数据打包通过putExtra方法,并设置ResultCode,最后关闭界面。
- 回到第一个界面,重写onActivityResult()方法,判断是否reseultCode正常。然后从data中取出数据。
Activity的销毁
back键返回
大家都知道的一种方式,可以通过手机的back键返回,从而销毁当前Activity。
finish()
可以通过在一个空间的监听事件中通过类调用finish()方法从而销毁当前的活动。