android:从另外一个activity中返回数据
2016-02-12 17:09
621 查看
首先看一下activity返回数据的结构图
以前我们启动另外一个activity用的是
方法 而若想打开另外一个activity并且返回结果 就要使用
具体作用是:
我们实现的效果是:
主界面是这样
当我们点击选择按钮后打开另外一个activity
当我们点击号码时,结束这个activity并且在主activity中的编辑框中显示这个号码
具体实现代码如下。
MainActivity
在ResultActivity中 需要用setResult(int resultCode, Intent data);方法返回选择的号码。其中resultCode是一个int型,而data是Intent型 。新建一个intent对象就好了
然后调用finish()方法结束这个activity 别忘记在AndroidManifest配置一下信息如下
所以ResultActivity代码如下
activity_result.xml
这是运行结果
以前我们启动另外一个activity用的是
startActivity(Intent intent)
方法 而若想打开另外一个activity并且返回结果 就要使用
startActivityForResult(Intent intent,int requestCode)intent就不用说了 其中requestCode就是请求码 为了在另外一个activity中分辨 每个请求码应该做的事情
具体作用是:
我们实现的效果是:
主界面是这样
当我们点击选择按钮后打开另外一个activity
当我们点击号码时,结束这个activity并且在主activity中的编辑框中显示这个号码
具体实现代码如下。
MainActivity
package com.example.activityforresult; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity { private EditText editText; private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText=(EditText) findViewById(R.id.editText); button=(Button) findViewById(R.id.button); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub //从另外一个activity得到结果不能再用startActivity()方法要用这个方法 startActivityForResult(new Intent(MainActivity.this,ResultActivity.class), 0x1); } }); } /* * 如果要得到返回的结果 一定要实现这个类 * */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub //如果data等于null返回 if(data==null) return ; String phoneNumber=data.getExtras().getString("phoneNumber"); //更新编辑框内容为所选的号码 editText.setText(phoneNumber); } }
在ResultActivity中 需要用setResult(int resultCode, Intent data);方法返回选择的号码。其中resultCode是一个int型,而data是Intent型 。新建一个intent对象就好了
然后调用finish()方法结束这个activity 别忘记在AndroidManifest配置一下信息如下
<activity android:name="com.example.activityforresult.ResultActivity" ></activity>
所以ResultActivity代码如下
package com.example.activityforresult; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.TextView; public class ResultActivity extends Activity{ private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_result); textView=(TextView) findViewById(R.id.textView); textView.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub Intent intent=new Intent(); intent.putExtra("phoneNumber", textView.getText().toString()); setResult(0x1, intent); finish(); } }); } }activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <EditText android:id="@+id/editText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="11" /> <Button android:id="@+id/button" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="选择" android:layout_toRightOf="@id/editText" /> </RelativeLayout>
activity_result.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="15518901241" /> </LinearLayout>
这是运行结果
相关文章推荐
- Android使用简单的Service
- Android 编程下 Touch 事件的分发和消费机制
- Android Layout 之 RelativeLayout
- Android电话拨号器的实现
- ANDROID_MARS学习笔记_S02_003_AutoCompleteTextView
- ANDROID_MARS学习笔记_S02_002_Date\TimePicker
- Android开发随手记之一
- ANDROID_MARS学习笔记_S02_001_Spinner
- 【案例分析】android广播接收不到原因分析
- android中view控件的setTag()和getTag()用法和功能介绍
- Android相机开发那些坑
- ANDROID_MARS学习笔记_S01_012_RatingBar
- ANDROID_MARS学习笔记_S01_012_SeekBar
- Android开发之Animations动画用法实例详解
- ANDROID_MARS学习笔记_S01_011ProgressBar
- 【Android】7.7 以后改为在Win10下开发了
- 多长时间更新一次 Android Studio?
- Android编程滑动效果之倒影效果实现方法(附demo源码下载)
- android:Activity数据传递之静态变量
- Android样式的开发:Layer-list篇