• 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 应用场景很多,这里就不一一列举,总之一句话:学的东西不能死板的去套用,要活学活用。


  • 相关阅读:
    生活中总结出来的各种定律
    python中os.system()的返回值
    使用ldap登录服务器
    使用VirtualBox + Vagrant打造统一的开发环境
    Laravel 虚拟开发环境 Homestead
    win7 powershell版本过低问题
    Vagrant安装教程及常见问题
    vagrant up提示“Couldn‘t open file /path/to/base“的错误解决方法
    一起谈.NET技术,ASP.NET MVC的全球化方案 狼人:
    一起谈.NET技术,.Net4.0 Parallel编程(二)Data Parallelism 中 狼人:
  • 原文地址:https://www.cnblogs.com/oasis2008/p/2353904.html
Copyright © 2020-2023  润新知