Android Dev GuideStarting an activity for a result

以前总想着抽出时间来把Android官方开发文档来看一遍,但是一直把时间都浪费了,现在抽出时间来把这些都看一遍,下面是自己整理的问题:

Starting an activity for a result

代码场景为MainActivity中包含一个Button和一个TextView,Button的OnClick事件为开启另外一个Activity,这里用startActivityForResult(intent, REQUEST_CODE);这种方式来启动新的Activity,第二个参数为我们自定义

的一个int型的状态码,Override Activity的onActivityResult()这个方法,这个判断返回码跟我们之前定义的是否相同,如果相同则textView.setText("haha ,this run");当然这个是我们定义的操作。

 1 package com.oasis.yxc.android.activitys;
2
3 import android.app.Activity;
4 import android.content.Intent;
5 import android.os.Bundle;
6 import android.view.View;
7 import android.view.View.OnClickListener;
8 import android.widget.Button;
9 import android.widget.TextView;
10
11 public class ActivitysActivity extends Activity {
12 /** Called when the activity is first created. */
13
14 private Button button;
15 private TextView textView;
16 private static final int REQUEST_CODE = 1111;
17 @Override
18 public void onCreate(Bundle savedInstanceState) {
19 super.onCreate(savedInstanceState);
20 setContentView(R.layout.main);
21
22 button = (Button) findViewById(R.id.mybtn);
23 textView = (TextView) findViewById(R.id.myshow);
24
25 button.setOnClickListener(new OnClickListener() {
26
27 @Override
28 public void onClick(View v) {
29 Intent intent = new Intent(ActivitysActivity.this, SecondActivity.class);
30 startActivityForResult(intent, REQUEST_CODE);
31 }
32 });
33 }
34
35 @Override
36 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
37
38 if (requestCode == REQUEST_CODE) {
39 textView.setText("haha ,this run");
40 }
41 super.onActivityResult(requestCode, resultCode, data);
42 }
43 }

下面我们想象一下startActivityForResult(intent, REQUEST_CODE);的应用场景,比如我们手机的GPRS和WIFI都关闭中,启动我们的应用程序,判断当前的网络没有开启,所以我们要打开设置去开启GPRS或者是WIFI

1 startActivityForResult(new Intent(Settings.ACTION_WIRELESS_SETTINGS),CHECK_NET_REQUEST_CODE);

当我们设置完成后返回我们的Activity(前边的Activity保持在栈顶),这样我们在onActivityResult()方法中接收我们以前定义的返回码,来进行后续的操作。

1  @Override
2 protected void onActivityResult(int requestCode, int resultCode, Intent data)
3 {
4 if (requestCode == CHECK_NET_REQUEST_CODE) {
5 //TODO SOMETHING
6 }
7 super.onActivityResult(requestCode, resultCode, data);
8 }


Starting an activity for a result 应用场景很多,这里就不一一列举,总之一句话:学的东西不能死板的去套用,要活学活用。


原文地址:https://www.cnblogs.com/oasis2008/p/2353904.html