从数据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="男"
>
</RadioButton>
<RadioButton
android:id="@+id/gril"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="女"
>
</RadioButton>
</RadioGroup>
<TextView
android:id="@+id/sexText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="性别:"
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="身高:"
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="计算"
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="性别:"
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接口的使用的具体实例代码,详情请看>http://blog.csdn.net/js931178805/article/details/8268144
1. **Intent**: Intent是Android系统中用于启动Activity或Service的意图对象,同时也被用于在Activity之间传递数据。在"猴子摘桃"项目中,我们可能通过Intent将数据(如桃子的数量)从一个Activity传递到另一个...
标题"android 传值回调"主要涉及的是在Android应用程序的不同Activity之间传递数据以及使用回调方法来处理这些数据的方式。本篇文章将详细探讨Android页面传值的各种策略和技术。 首先,最基本的页面传值方式是使用...
Fragment与Activity之间的数据交换,大体上包括三种: 一、Fragment从Activity获取数据(本文章只介绍第一种); 二、Activity从Fragment获取数据; 三、Fragment之间获取数据。 实现效果: 从Activity传递数据到两...
本实例将深入探讨这一主题,讲解如何在Fragment和Activity之间有效地传递数据和执行操作。 首先,让我们了解Fragment和Activity的基本结构。Activity是应用程序的主要组件,它承载着UI和业务逻辑。Fragment则是一个...
在现代的移动应用开发中,JavaScript与原生平台之间的交互变得越来越常见,特别是在使用Android的WebView组件时。本文将深入探讨如何使用JavaScript调用Android的方法,并传递JSON数据,以实现两者之间的高效通信。 ...
在Android应用开发中,RecyclerView是一个极其重要的组件,用于展示可滚动的数据列表。它取代了旧的ListView,提供了更高效、更灵活的布局管理。在本教程中,我们将深入探讨如何在RecyclerView的条目中添加按钮,并...
- **Activity生命周期**:详解Activity的各个生命周期状态及其回调函数。 - **启动模式**:解释四种不同的启动模式(standard、singleTop、singleTask、singleInstance)的区别。 - **任务栈管理**:分析如何管理和...
在Android开发中,接口回调是一种常见的通信机制,用于在不同组件之间传递信息,尤其是在Activity、Service、BroadcastReceiver等之间。接口回调允许一个组件(如Activity)注册一个接口,并由另一个组件(如...
3. **BroadcastReceiver**:广播接收器可以在不同组件之间传递消息,包括子线程。创建一个自定义Intent,然后在需要通信的线程中发送和接收。不过,这种方式开销较大,通常用于全局事件的传递,而非特定线程间的通信...
"android-serialport-api"是官方提供的一款开源项目,专为Android系统设计,旨在简化开发者与硬件设备间的串行通信过程。这个项目使得开发者能够方便地在Android设备上实现串口调试和开发功能,无需深入底层硬件细节...
� 由于采用了 Java 作为应用开发语言,目前可用的传统第三方应用还很少,但由于 Android 是一款完全 开 源的移动计算平台,相信第三方应用会很快的丰富起来。 � Google 提供了一套 Java 核心包 (J2SE 5,J2SE 6) 的...
Activity之间的切换动画可以极大地提升用户体验,"android activity右进右出动画"就是一个常见的应用场景,它使得应用在切换时具有更加自然、流畅的视觉效果。在Android中实现这种动画主要涉及两部分:进入动画...
在Android开发中,有时我们需要创建一个弹出式对话框来与用户进行交互,但不同于常见的`Dialog`类,我们可以利用`Activity`来实现这一功能。这种方式适用于需要更复杂交互或者自定义布局的情况。本文将详细讲解如何...
在Android开发中,Activity之间的切换可以通过自定义动画来实现更加丰富的视觉效果,比如翻转动画。这不仅可以提高用户的交互体验,还能为应用增添独特的风格。本文将深入探讨如何实现两个Activity之间的翻转动画...
当检测到二维码或条形码时,`BarcodeDetector`会触发一个回调,你需要在这个回调中处理扫描结果。例如,解析二维码数据并根据其内容进行相应的操作。 7. **UI设计**: 设计扫描界面,通常包含一个用于预览的...
在Android应用开发中,HTTP通信是连接客户端与服务器端的重要桥梁,主要用于数据交换、文件上传和下载等操作。本示例将重点讲解如何在Android应用中实现基于HTTP的JSON数据传递,以及如何处理文件的上传和下载。 ...
- **主要内容**:深入探讨Intent的作用及其实现机制,演示如何使用Intent在不同的Activity之间传递数据。 - **学习目标**:学会使用Intent进行Activity间的跳转和数据交换。 #### 6. 常见控件介绍 - **视频名称**:...
在Android开发中,`android:scheme` 是一个关键的概念,用于构建自定义URL协议,使得外部应用或系统可以通过特定的URI来启动我们的应用程序中的特定Activity。这个特性在很多场景下非常有用,比如分享链接、广告点击...
很多这种类型的dialog,界面千变万化,于是我建立了一个通用自定义dialog,可以实现...2、不管是在Fragment,还是Activity都可以实例化该dialog,并且实现dialog按钮的监听回调; 3、在dialog按钮点击后,自动消失。