• 从Activity中返回数据


    从Activity中返回数据

    一、简介

    这里也就是使用intent方式返回数据。

    二、具体步骤

    在MainActivity通过一个button访问Activity01页面,然后将Activity01页面的数据返回到MainActivity页面。

    调用Activity页面:MainActivity

    被调用页面:Activity01

    接收值页面:MainActivity

    传值页面:Activity01

    1、将调用页面的startActivity方法换成startActivityForResult,用于接收数据

    startActivityForResult(intent, 0);

    2、在传值页面用intent.putExtra方法将值传过来,然后关闭页面

    Intent intent=new Intent();
    intent.putExtra("phoneNumber",tv_phoneNum.getText());
    setResult(0, intent);
    finish();

    3、在接收值页面重写onActivityResult方法用于接收数据

    Bundle bundle=data.getExtras();
    String phoneNumber=bundle.getString("phoneNumber");
    et_phoneNumber.setText(phoneNumber);

    说明:

    Activity01调用完finish()方法销毁之后,就会调用MainActivity的onActivityResult方法,

    去看finish的方法说明就好,就在eclipse代码里面看,点finish()方法

    三、代码实例

    结果图:

    代码:

    activityReturnData.MainActivity

     1 package activityReturnData;
     2 
     3 
     4 
     5 
     6 import com.example.activityReturnData.R;
     7 
     8 import android.app.Activity;
     9 import android.content.Intent;
    10 import android.os.Bundle;
    11 import android.view.View;
    12 import android.view.View.OnClickListener;
    13 import android.widget.Button;
    14 import android.widget.EditText;
    15 
    16 
    17 
    18 public class MainActivity extends Activity{
    19     private Button btn_chooseContacter;//创建一个button对象
    20     private EditText et_phoneNumber;
    21      protected void onCreate(Bundle savedInstanceState) {
    22             super.onCreate(savedInstanceState);//父类操作
    23             setContentView(R.layout.activity_main);//引入名为activity_main的界面
    24             btn_chooseContacter=(Button) findViewById(R.id.btn_chooseContacter);//找id为btn_openActivity的button
    25             et_phoneNumber=(EditText) findViewById(R.id.et_phoneNum);
    26             btn_chooseContacter.setOnClickListener(new OnClickListener() {//设置button点击监听
    27                 
    28                 @Override
    29                 public void onClick(View v) {//onclick事件
    30                     // TODO Auto-generated method stub
    31                     Intent intent=new Intent(MainActivity.this,Activity01.class);//初始化intent
    32                     //请求码:resultCode
    33                     startActivityForResult(intent, 0);
    34                 }
    35             });
    36         }
    37     /*
    38      * Activity01调用完finish()方法销毁之后,就会调用MainActivity的onActivityResult方法
    39      * 因为Activity01完成后会返回调用它的方法
    40      *  (non-Javadoc)
    41      * @see android.app.Activity#onActivityResult(int, int, android.content.Intent)
    42      */
    43      @Override
    44     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    45         // TODO Auto-generated method stub
    46         super.onActivityResult(requestCode, resultCode, data);
    47         //就是如果没有传值回来的情况,直接return就ok了
    48         if(data==null) return;
    49         Bundle bundle=data.getExtras();
    50         String phoneNumber=bundle.getString("phoneNumber");
    51         et_phoneNumber.setText(phoneNumber);
    52     }
    53 }

    activityReturnData.Activity01

     1 package activityReturnData;
     2 
     3 
     4 import com.example.activityReturnData.R;
     5 
     6 import android.app.Activity;
     7 import android.content.Intent;
     8 import android.os.Bundle;
     9 import android.view.View;
    10 import android.view.View.OnClickListener;
    11 import android.widget.TextView;
    12 
    13 public class Activity01 extends Activity{
    14     private TextView tv_phoneNum;
    15     @Override
    16     protected void onCreate(Bundle savedInstanceState) {
    17         // TODO Auto-generated method stub
    18         super.onCreate(savedInstanceState);
    19         setContentView(R.layout.activity01);
    20         tv_phoneNum=(TextView) findViewById(R.id.tv_phoneNum);
    21         tv_phoneNum.setOnClickListener(new OnClickListener() {
    22             
    23             @Override
    24             public void onClick(View v) {
    25                 // TODO Auto-generated method stub
    26                 Intent intent=new Intent();
    27                 intent.putExtra("phoneNumber",tv_phoneNum.getText());    
    28                 //resultCode,结果码
    29                 setResult(0, intent);
    30                 finish();
    31             }
    32         });
    33     }
    34 }

    /activityReturnData/AndroidManifest.xml

     1 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     2     package="com.example.activityReturnData"
     3     android:versionCode="1"
     4     android:versionName="1.0" >
     5 
     6     <uses-sdk
     7         android:minSdkVersion="8"
     8         android:targetSdkVersion="19" />
     9 
    10     <application
    11         android:allowBackup="true"
    12         android:icon="@drawable/ic_launcher"
    13         android:label="@string/app_name"
    14         android:theme="@style/AppTheme" >
    15         <activity
    16             android:name="activityReturnData.MainActivity"
    17             android:label="@string/app_name" >
    18             <intent-filter>
    19                 <action android:name="android.intent.action.MAIN" />
    20 
    21                 <category android:name="android.intent.category.LAUNCHER" />
    22             </intent-filter>
    23         </activity>
    24         <activity android:name="activityReturnData.Activity01" android:exported="true"></activity>
    25     </application>
    26 
    27 </manifest>
  • 相关阅读:
    获取设备信息
    获取Mac地址
    常用正则
    几个字段相同的纪录去重留下主键最小的一条纪录
    mysql查询数据库中包含某字段(列名)的所有表
    nginx反向代理
    Eureka参数配置项详解
    html5验证自适应
    synchronized对象解析
    多线程进行数据同步
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/7268772.html
Copyright © 2020-2023  润新知