`
umbrellall1
  • 浏览: 145501 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

第一章:初入Android大门(不同的Activity之间的数据传递与回调--setActivityForResult)

阅读更多

从数据Activity传递至Activity2这样的做发可以恢复User输入数据,当然也可以采用Bundle方式再传递一次也可以但是这样感觉很别扭。
效果:











直接看代码
main.xml

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

<EditText
android:id="@+id/heigths"
android:layout_width="129px"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_x="122px"
android:layout_y="141px"
>
</EditText>
<RadioGroup android:id="@+id/sexs"
        android:layout_width="wrap_content"
		android:layout_x="122px"
		android:orientation="horizontal"
		android:layout_y="87px"
        android:layout_height="wrap_content">
<RadioButton
android:id="@+id/boy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="&#30007;"
>
</RadioButton>
<RadioButton
android:id="@+id/gril"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="&#22899;"
>
</RadioButton>
</RadioGroup>
<TextView
android:id="@+id/sexText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="&#24615;&#21035;:"
android:layout_x="51px"
android:layout_y="102px"
>
</TextView>
<TextView
android:id="@+id/heigth"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="&#36523;&#39640;:"
android:layout_x="51px"
android:layout_y="152px"
>
</TextView>
<Button
android:id="@+id/count"
android:layout_width="74px"
android:layout_height="wrap_content"
android:text="&#35745;&#31639;"
android:layout_x="140px"
android:layout_y="203px"
>
</Button>
</AbsoluteLayout>




layout2.xml

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="&#24615;&#21035;:"
android:layout_x="74px"
android:layout_y="106px"
>
</TextView>
<Button
android:id="@+id/back"
android:layout_width="74px"
android:layout_height="wrap_content"
android:text="@string/back"
android:layout_x="140px"
android:layout_y="203px"
>
</Button>

</AbsoluteLayout>


strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, BackTransferData!</string>
      <string name="back">返回</string>
    <string name="app_name">BackTransferData</string>
</resources>





AndroidManifest.xml


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="back.transfer.data"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".BackTransferData"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
	<activity android:name=".BackTransferData2"></activity>
    </application>
</manifest> 





R.java
/* AUTO-GENERATED FILE.  DO NOT MODIFY.
 *
 * This class was automatically generated by the
 * aapt tool from the resource data it found.  It
 * should not be modified by hand.
 */

package back.transfer.data;

public final class R {
    public static final class attr {
    }
    public static final class drawable {
        public static final int icon=0x7f020000;
    }
    public static final class id {
        public static final int back=0x7f050001;
        public static final int boy=0x7f050004;
        public static final int count=0x7f050008;
        public static final int gril=0x7f050005;
        public static final int heigth=0x7f050007;
        public static final int heigths=0x7f050002;
        public static final int sexText=0x7f050006;
        public static final int sexs=0x7f050003;
        public static final int text=0x7f050000;
    }
    public static final class layout {
        public static final int layout2=0x7f030000;
        public static final int main=0x7f030001;
    }
    public static final class string {
        public static final int app_name=0x7f040002;
        public static final int back=0x7f040001;
        public static final int hello=0x7f040000;
    }
}



BackTransferData.java


package back.transfer.data;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;

public class BackTransferData extends Activity {
    /** Called when the activity is first created. */
	private Button bt;
	EditText et;
	private RadioButton rb;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        /**载入main.xml*/
        setContentView(R.layout.main);
        /**找到文本框*/
        et=(EditText)findViewById(R.id.heigths);
        /**找到计算按钮*/
        bt=(Button)findViewById(R.id.count);
        /**设置按钮的监听事件*/
        bt.setOnClickListener(new Button.OnClickListener(){
        	public void onClick(View v){
        		/**判断是否被选中*/
        		String sex="女";
        		rb=(RadioButton)findViewById(R.id.boy);
        		if(rb.isChecked()){
        			sex="男";
        		}
        		/**把取得的字符串转换成double类型*/
        		double height=Double.parseDouble((et.getText()).toString());
        		/**实例化Bundle对像,把将要传递的数据以键值对的形式添加进去*/
        		Bundle bundle=new Bundle();
        		/**添加的是Double类型的数值*/
        		bundle.putDouble("height", height);
        		/**添加的是String类型的数值*/
        		bundle.putString("sex", sex);
        		/**实例化Intent对像,并指定传递的class*/
        		Intent intent=new Intent();
        		intent.setClass(BackTransferData.this, BackTransferData2.class);
        		/**将设置好值的Bundle对象添加进Intent*/
        		intent.putExtras(bundle);
        		/**调用TransferData2 其中startActivityForResult(intent, 0)的0代表下一个要传递Activity要返回的数据可以自定义*/
        		startActivityForResult(intent, 0);
        	}
        });
    }
    
    /**覆盖onActivityResult方法*/
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		/**取得Bundle对象*/
		Bundle bundle=data.getExtras();
		/**取得对应sex键的值*/
		String sex=bundle.getString("sex");
		/**取得对应height键的值*/
		double height=bundle.getDouble("height");
		/**设置哪个RadioButton按钮被选中*/
		RadioButton rb2=(RadioButton)findViewById(R.id.gril);
		et.setText(""+height);
		if(sex.equals("男")){
			rb.setChecked(true);
		}else{
			rb2.setChecked(true);
		}
	}
    
    
}




BackTransferData2.java

package back.transfer.data;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class BackTransferData2 extends Activity {
    /** Called when the activity is first created. */
	private Button bt;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        /**载入layout2.xml*/
        setContentView(R.layout.layout2);
        /**找到TextView*/
        TextView text=(TextView)findViewById(R.id.text);
        /**获取Bundle*/
        Bundle bundle=this.getIntent().getExtras();
        /**对TextView设值*/
        text.setText("性别:"+bundle.getString("sex")+"\n身高:"+bundle.getDouble("height"));
        /**找到Button*/
        bt=(Button)findViewById(R.id.back);
        /**设置bt按钮的监听事件*/
        bt.setOnClickListener(new Button.OnClickListener(){
        	public void onClick(View v){
        		/**返回results回上一个activity*/
        		BackTransferData2.this.setResult(RESULT_OK,BackTransferData2.this.getIntent());
        		/**结束当前activity*/
        		BackTransferData2.this.finish();
        	}
        });
    }
}




  • 大小: 8.6 KB
  • 大小: 4.6 KB
分享到:
评论

相关推荐

    android Activity之间数据传递 Parcelable和Serializable接口的使用

    android Activity之间数据传递 Parcelable和Serializable接口的使用的具体实例代码,详情请看&gt;http://blog.csdn.net/js931178805/article/details/8268144

    Android开发 猴子摘桃小项目——学习Activity之间的数据回传

    1. **Intent**: Intent是Android系统中用于启动Activity或Service的意图对象,同时也被用于在Activity之间传递数据。在"猴子摘桃"项目中,我们可能通过Intent将数据(如桃子的数量)从一个Activity传递到另一个...

    android 传值回调

    标题"android 传值回调"主要涉及的是在Android应用程序的不同Activity之间传递数据以及使用回调方法来处理这些数据的方式。本篇文章将详细探讨Android页面传值的各种策略和技术。 首先,最基本的页面传值方式是使用...

    Android Fragment与Activity之间的数据交换(Fragment从Activity获取数据)

    Fragment与Activity之间的数据交换,大体上包括三种: 一、Fragment从Activity获取数据(本文章只介绍第一种); 二、Activity从Fragment获取数据; 三、Fragment之间获取数据。 实现效果: 从Activity传递数据到两...

    Fragment与Activity之间通信实例

    本实例将深入探讨这一主题,讲解如何在Fragment和Activity之间有效地传递数据和执行操作。 首先,让我们了解Fragment和Activity的基本结构。Activity是应用程序的主要组件,它承载着UI和业务逻辑。Fragment则是一个...

    JS调用Android方法,向Android方法传递json数据

    在现代的移动应用开发中,JavaScript与原生平台之间的交互变得越来越常见,特别是在使用Android的WebView组件时。本文将深入探讨如何使用JavaScript调用Android的方法,并传递JSON数据,以实现两者之间的高效通信。 ...

    Android中Recyclerview使用7----条目中按钮点击事件,在activity中调用(接口回调)

    在Android应用开发中,RecyclerView是一个极其重要的组件,用于展示可滚动的数据列表。它取代了旧的ListView,提供了更高效、更灵活的布局管理。在本教程中,我们将深入探讨如何在RecyclerView的条目中添加按钮,并...

    android应用开发详解 郭宏志编著 pdf格式

    - **Activity生命周期**:详解Activity的各个生命周期状态及其回调函数。 - **启动模式**:解释四种不同的启动模式(standard、singleTop、singleTask、singleInstance)的区别。 - **任务栈管理**:分析如何管理和...

    Android 关于一个接口回调的Demo

    在Android开发中,接口回调是一种常见的通信机制,用于在不同组件之间传递信息,尤其是在Activity、Service、BroadcastReceiver等之间。接口回调允许一个组件(如Activity)注册一个接口,并由另一个组件(如...

    Android两个子线程之间的通信

    3. **BroadcastReceiver**:广播接收器可以在不同组件之间传递消息,包括子线程。创建一个自定义Intent,然后在需要通信的线程中发送和接收。不过,这种方式开销较大,通常用于全局事件的传递,而非特定线程间的通信...

    android-serialport-api安卓串口驱动源码

    "android-serialport-api"是官方提供的一款开源项目,专为Android系统设计,旨在简化开发者与硬件设备间的串行通信过程。这个项目使得开发者能够方便地在Android设备上实现串口调试和开发功能,无需深入底层硬件细节...

    新版Android开发教程.rar

    � 由于采用了 Java 作为应用开发语言,目前可用的传统第三方应用还很少,但由于 Android 是一款完全 开 源的移动计算平台,相信第三方应用会很快的丰富起来。 � Google 提供了一套 Java 核心包 (J2SE 5,J2SE 6) 的...

    android activity右进右出动画

    Activity之间的切换动画可以极大地提升用户体验,"android activity右进右出动画"就是一个常见的应用场景,它使得应用在切换时具有更加自然、流畅的视觉效果。在Android中实现这种动画主要涉及两部分:进入动画...

    Android使用Activity用作弹出式对话框

    在Android开发中,有时我们需要创建一个弹出式对话框来与用户进行交互,但不同于常见的`Dialog`类,我们可以利用`Activity`来实现这一功能。这种方式适用于需要更复杂交互或者自定义布局的情况。本文将详细讲解如何...

    android 两个activity 翻转动画切换

    在Android开发中,Activity之间的切换可以通过自定义动画来实现更加丰富的视觉效果,比如翻转动画。这不仅可以提高用户的交互体验,还能为应用增添独特的风格。本文将深入探讨如何实现两个Activity之间的翻转动画...

    AndroidStudio集成Zxing实现扫一扫demo

    当检测到二维码或条形码时,`BarcodeDetector`会触发一个回调,你需要在这个回调中处理扫描结果。例如,解析二维码数据并根据其内容进行相应的操作。 7. **UI设计**: 设计扫描界面,通常包含一个用于预览的...

    android HTTP通信例子(json数据传递)

    在Android应用开发中,HTTP通信是连接客户端与服务器端的重要桥梁,主要用于数据交换、文件上传和下载等操作。本示例将重点讲解如何在Android应用中实现基于HTTP的JSON数据传递,以及如何处理文件的上传和下载。 ...

    android开发教程全集视频(迅雷种子)

    - **主要内容**:深入探讨Intent的作用及其实现机制,演示如何使用Intent在不同的Activity之间传递数据。 - **学习目标**:学会使用Intent进行Activity间的跳转和数据交换。 #### 6. 常见控件介绍 - **视频名称**:...

    android:scheme 通过uri跳转到APP应用指定Activity

    在Android开发中,`android:scheme` 是一个关键的概念,用于构建自定义URL协议,使得外部应用或系统可以通过特定的URI来启动我们的应用程序中的特定Activity。这个特性在很多场景下非常有用,比如分享链接、广告点击...

    Android开发:自定义界面的Dialog,并且实现按钮的监听回调

    很多这种类型的dialog,界面千变万化,于是我建立了一个通用自定义dialog,可以实现...2、不管是在Fragment,还是Activity都可以实例化该dialog,并且实现dialog按钮的监听回调; 3、在dialog按钮点击后,自动消失。

Global site tag (gtag.js) - Google Analytics