`
longgangbai
  • 浏览: 7332427 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android中不同Activity的切换

 
阅读更多

 

 

                     在android的开发中不同页面中Activity的切换以及原理讲解,本实例中从ActivityBundle页面中切换至ResultActivity,点击返回至返回页面:

原理将页面ActivityBundle切换ResultActivity页面,将height,sex信息存储在Bundle中,在另一个页面中获取:

		//通过intent跳转到下一个页面.
				Intent intent = new Intent();
				intent.setClass(ActivityBundle.this, ResultActivity.class);
				//通过Bundle来获取数据,通过key-Value的方式放入数据
				Bundle bl = new Bundle();
				bl.putDouble("height", body_height);
				bl.putString("sex", sex);
				//将Bundle放入Intent传入下一个Activity
				intent.putExtras(bl);
				//跳到下一个Activity,并且等待其返回结果
				startActivityForResult(intent, 0);
				//不能够在这个Activity调用了startActivityForResult之后调用finsh()
				//否则无法接收到返回

 

在ResultActivity中获取切换bundle中信息。

 

		setContentView(R.layout.resultlayout);
		//获取到上一个页面传过来的Intent
		intent=this.getIntent();
		//获取Intent中的Bundle数据
		bl=intent.getExtras();
		String sex=bl.getString("sex");
		double height=bl.getDouble("height");

 源代码如下:

package com.easyway.android.weather.switchwidget;

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

/**
 *  个人信息体重信息界面
 * @author longgangbai
 *
 */
public class ActivityBundle extends Activity
{

	private RadioButton rbMan;
	private RadioButton rbWoman;
	private EditText editHight;
	private Button btnOK;
	private double body_height;
	
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data)
	{
		switch (resultCode)
		{
			//结果返回
		case RESULT_OK:
			//获取Bundle的数据
			Bundle bl= data.getExtras();
			String sex=bl.getString("sex");
			if (sex.equals("M"))
			{
				rbMan.setChecked(true);
			}
			else
			{
				rbWoman.setChecked(true);
			}
			body_height=bl.getDouble("height");
			editHight.setText(""+body_height);
			break;
		default:
			break;
		}
	}
	
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		btnOK = (Button) findViewById(R.id.btn_calc);
		rbMan = (RadioButton) findViewById(R.id.radio_man);
		rbWoman = (RadioButton) findViewById(R.id.radio_woman);
		editHight = (EditText) findViewById(R.id.text_edit);
		btnOK.setOnClickListener(new OnClickListener()
		{
			@Override
			public void onClick(View v)
			{
				try
				{
					body_height = Double.parseDouble(editHight.getText()
							.toString());
				}
				catch (Exception e)
				{
					body_height = 0;
				}
				String sex = "";
				if (rbMan.isChecked())
				{
					sex = "M";
				}
				else
				{
					sex = "F";
				}
				//通过intent跳转到下一个页面.
				Intent intent = new Intent();
				intent.setClass(ActivityBundle.this, ResultActivity.class);
				//通过Bundle来获取数据,通过key-Value的方式放入数据
				Bundle bl = new Bundle();
				bl.putDouble("height", body_height);
				bl.putString("sex", sex);
				//将Bundle放入Intent传入下一个Activity
				intent.putExtras(bl);
				//跳到下一个Activity,并且等待其返回结果
				startActivityForResult(intent, 0);
				//不能够在这个Activity调用了startActivityForResult之后调用finsh()
				//否则无法接收到返回
			}

		});
	}
}

 

package com.easyway.android.weather.switchwidget;

import java.text.DecimalFormat;
import java.text.NumberFormat;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

/**
 * 结果显示测试界面
 * @author longgangbai
 *
 */
public class ResultActivity extends Activity
{
	Bundle bl;
	Intent intent;
	Button btn;
	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.resultlayout);
		//获取到上一个页面传过来的Intent
		intent=this.getIntent();
		//获取Intent中的Bundle数据
		bl=intent.getExtras();
		String sex=bl.getString("sex");
		double height=bl.getDouble("height");
		String sexText="";
		if (sex.equals("M"))
		{
			sexText="男性";
		}
		else
		{
			sexText="女性";
		}
		
		String weight=getWeight(sex,height);
		TextView tv1=(TextView)findViewById(R.id.TextView01);
		tv1.setText("你是一位"+sexText);
		TextView tv2=(TextView)findViewById(R.id.TextView02);
		tv2.setText("你的身高是"+height+"厘米");
		TextView tv3=(TextView)findViewById(R.id.TextView03);
		tv3.setText("你的标准体重是"+weight+"公斤");
		btn=(Button)findViewById(R.id.btn_back);
		//点击返回代码
		btn.setOnClickListener(new OnClickListener()
		{

			@Override
			public void onClick(View arg0)
			{
				//将intent传会上一个Activity
				ResultActivity.this.setResult(RESULT_OK, intent);
				ResultActivity.this.finish();
			}
			
		});
	}
	
	private String format(double num)
	{
		NumberFormat nf =new DecimalFormat("0.00");
		String s=nf.format(num);
		return s;
	}
	
	private String getWeight(String sex,double height)
	{
		String weight="";
		if (sex.equals("M"))
		{
			weight=format((height-80)*0.7);
		}
		else
		{
			weight=format((height-70)*0.6);
		}
		return weight;
	}
}

  

main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingBottom="4dip"   
    android:paddingLeft="12dip"
    android:paddingTop="4dip"
    android:paddingRight="12dip"
    >
<TextView  
	android:id="@+id/title_view"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="体重计算"
    />

<TextView
	android:id="@+id/text_title"
	android:layout_width="fill_parent"
	android:layout_height="wrap_content"
	android:textSize="20sp"
	android:layout_below="@+id/title_view"
	android:text="计算你的标准体重"
	/>
	
<TextView
	android:id="@+id/text_weight"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:textSize="20sp"
	android:layout_below="@+id/text_title"
	android:text="体重:"
	/>	
	
<RadioGroup 
	android:id="@+id/RadioGroup01" 
	android:layout_width="wrap_content" 
	android:layout_below="@+id/text_title"
	android:layout_toRightOf="@+id/text_weight" 
	android:orientation="horizontal"
	android:checkedButton="@+id/radio_man"
	android:layout_height="wrap_content">
	
	<RadioButton
		android:id="@+id/radio_man"
		android:text="男"
	/>	
	<RadioButton
		android:id="@+id/radio_woman"
		android:text="女"
	/>	
</RadioGroup>
<TextView
	android:id="@+id/text_height"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:textSize="20sp"
	android:layout_below="@+id/RadioGroup01"
	android:text="身高:"
	/>	
	
<EditText
	android:id="@+id/text_edit"
	android:layout_width="200dip"
	android:layout_height="wrap_content"
	android:layout_below="@+id/RadioGroup01"
	android:layout_toRightOf="@+id/text_height"	
	android:numeric="decimal"
/>
<Button 
	android:layout_width="wrap_content" 
	android:text="计算" 
	android:layout_below="@+id/text_edit" 
	android:id="@+id/btn_calc" 
	android:layout_toRightOf="@+id/text_height" 
	android:layout_height="wrap_content">
	</Button>
<TextView
	android:id="@+id/text_cm"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:layout_below="@+id/RadioGroup01"
	android:textSize="20sp"
	android:layout_toRightOf="@+id/text_edit"
	android:text="厘米"
/>	
	

</RelativeLayout>

 

 

 

resultlayout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="wrap_content" android:layout_height="wrap_content">
	<TableLayout android:id="@+id/TableLayout01"
		android:layout_width="wrap_content" android:layout_height="wrap_content">
		<TableRow android:id="@+id/TableRow01" android:layout_width="wrap_content"
			android:layout_height="wrap_content">

			<RelativeLayout android:id="@+id/RelativeLayout01"
				android:paddingLeft="12dip" android:paddingRight="12dip"
				android:paddingTop="10dip" android:paddingBottom="10dip"
				android:layout_width="wrap_content" android:layout_height="wrap_content">
				<TextView android:id="@+id/TextView01"
					android:layout_width="fill_parent" android:layout_height="wrap_content"
					android:textSize="20sp">

				</TextView>
			</RelativeLayout>
		</TableRow>
		<TableRow android:id="@+id/TableRow02" android:layout_width="wrap_content"
			android:layout_height="wrap_content">
			<RelativeLayout android:id="@+id/RelativeLayout02"
				android:paddingLeft="12dip" android:paddingRight="12dip"
				android:paddingTop="10dip" android:paddingBottom="10dip"
				android:layout_width="wrap_content" android:layout_height="wrap_content">
				<TextView android:id="@+id/TextView02"
					android:layout_width="wrap_content" android:layout_height="wrap_content"
					android:textSize="20sp">
				</TextView>
			</RelativeLayout>
		</TableRow>
		<TableRow android:id="@+id/TableRow03" android:layout_width="wrap_content"
			android:layout_height="wrap_content">
			<RelativeLayout android:id="@+id/RelativeLayout03"
				android:paddingLeft="12dip" android:paddingRight="12dip"
				android:paddingTop="10dip" android:paddingBottom="10dip"
				android:layout_width="wrap_content" android:layout_height="wrap_content">
				<TextView android:id="@+id/TextView03"
					android:layout_width="wrap_content" android:layout_height="wrap_content"
					android:textSize="20sp"></TextView>
			</RelativeLayout>
		</TableRow>
		<TableRow android:id="@+id/TableRow04" android:layout_width="wrap_content"
			android:layout_height="wrap_content">
			<RelativeLayout android:id="@+id/RelativeLayout04"
				android:paddingLeft="12dip" android:paddingRight="12dip"
				android:paddingTop="10dip" android:paddingBottom="10dip"
				android:layout_width="wrap_content" android:layout_height="wrap_content">
				<TextView android:id="@+id/TextView04"
					android:layout_width="wrap_content" android:layout_height="wrap_content"
					android:textSize="20sp">
				</TextView>
			</RelativeLayout>
		</TableRow>
		<TableRow android:id="@+id/TableRow05" android:layout_width="wrap_content"
			android:layout_height="wrap_content">
			<RelativeLayout android:id="@+id/RelativeLayout05"
				android:paddingLeft="40dip" android:paddingRight="40dip"
				android:paddingTop="10dip" android:paddingBottom="10dip"
				android:layout_width="wrap_content" android:layout_height="wrap_content">

				<Button android:text="返回上一个页面" android:id="@+id/btn_back"
					android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
			</RelativeLayout>
		</TableRow>
	</TableLayout>
</LinearLayout>

 

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.easyway.android.weather.switchwidget"
      android:versionCode="1"
      android:versionName="1.0">
     <uses-sdk android:minSdkVersion="14" />
     
    <application android:icon="@drawable/ic_launcher" android:label="@string/app_name">
        
        <activity android:name=".ActivityBundle"
                  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=".ResultActivity"/>
    </application>

</manifest> 

 

分享到:
评论

相关推荐

    Android中Activity切换动画

    以下是对Android中Activity切换动画的详细说明: 1. **标准动画** Android系统默认提供了几种基本的切换动画,如淡入淡出、滑动等。这些动画可以通过在Manifest.xml文件中的`&lt;activity&gt;`标签内设置`android:...

    android通过手势切换activity

    通过阅读源码,我们可以深入理解手势识别和Activity切换的具体实现细节,这对于优化性能和解决可能出现的问题非常有帮助。 6. **工具支持**: - 除了原生的手势识别库,还有一些第三方库如AndroidSwipeLayout、...

    底部导航和四个activity切换的框架

    在“底部导航和四个activity切换的框架”中,我们讨论的核心是如何在Android中实现这样的交互。 首先,我们要理解`TabHost`是Android SDK提供的一种用于创建多标签界面的组件。它允许开发者在一个Activity中嵌套多...

    android Activity切换动画多种方式

    总结,Android中的Activity切换动画是提高应用用户体验的重要手段。通过自定义动画、使用系统内置动画或创建基类来统一管理,开发者可以为应用添加各种独特的视觉效果。在实践中,应根据项目需求和用户喜好灵活选择...

    Android 改变Activity切换方式

    然而,开发者可以根据需求自定义Activity的切换方式,以实现不同的导航体验。本文将详细介绍如何改变Activity的切换方式。 首先,我们可以利用Android的Intent Flag来控制Activity的启动模式。Intent Flag主要有...

    android动画activity切换特效

    通过`overridePendingTransition()`方法,可以指定Activity切换时应用的动画资源ID。 2. Fade动画: Fade动画用于对象的淡入淡出,常用于背景颜色或者图片的渐变。 3. Explode动画: Explode动画是一种全屏的...

    android点击按钮实现多个Activity滑动切换

    然而,传统的Activity切换方式是通过Intent启动新的Activity并覆盖当前Activity,这种方式并不具备滑动动画效果。 要实现滑动切换,我们可以借助Android的Fragment或者自定义的Activity过渡动画。Fragment是Android...

    Android activity切换的动画效果

    当用户在应用中从一个Activity切换到另一个时,Android系统提供了丰富的动画效果来提升用户体验,使应用看起来更加流畅和专业。这篇博客“Android activity切换的动画效果”深入探讨了如何自定义和实现这些动画。 ...

    android里activity切换动画集合

    本篇将深入探讨Android中Activity切换动画的实现与应用。 首先,Android提供两种类型的动画:视图动画(View Animation)和属性动画(Property Animation)。视图动画主要用于改变对象的视觉外观,但不实际改变对象...

    android activity切换动画效果

    Android系统提供了丰富的动画工具,开发者可以根据需求自定义动画效果,使Activity切换更加生动有趣。 Android中的动画主要分为两种类型:帧动画(Frame Animation)和补间动画(Tween Animation)。帧动画适用于...

    activity切换动画效果大全

    android activity切换动画效果大全,包括六个经典例子: 1、25个activity切换的动画效果; 2、android activity 切换效果库(劲推荐); 3、Android_Activity之间切换动画; 4、Android改变Activity切换效果; 5、...

    android Activity间切换动画效果演示源码

    Android中的Activity切换动画可以通过`overridePendingTransition()`方法来定制。此方法接受两个整数参数,分别代表进入(启动)动画和退出(关闭)动画的资源ID。系统提供了许多预定义的动画,如滑动、淡入淡出等...

    android左右滑动切换activity

    通过FragmentTransaction,可以在一个Activity中无缝切换不同的内容。 7. **SwipeRefreshLayout**:虽然主要用来实现下拉刷新,但SwipeRefreshLayout也可与ViewPager结合,使用户在顶部下拉刷新内容,同时保持底部...

    Android的多Activity切换中保持Socket长连接的一个实现方法

    主要介绍并实现在android中的socket客户端在多个界面切换时保持socket的长链接的实现说明。博文https://blog.csdn.net/zhemingbuhao/article/details/108807065的配套实现源码

    Android Activity四种切换动画

    本篇将详细介绍Android中的四种常见Activity切换动画,包括从下到上、翻页、大小从1到0以及Alpha(透明度)从1到0的变化。 首先,我们来看从下到上的切换动画。这种动画常用于模仿抽屉效果,给人一种新界面从下方拉...

    Android高级应用源码-各种Activity切换效果.zip

    这个压缩包提供了不同Activity切换效果的源代码,对于开发者来说,这是一个深入理解Android动画机制和Activity管理的好资源。 【描述】"源码参考,欢迎下载" 提示我们这个资源主要目的是为了学习和研究。通过下载和...

    MyTestDemo.rar_Activity切换_activity_android_android activity

    本教程将深入探讨如何在Android应用中进行Activity切换、Activity间的数据传递以及如何使用自定义View创建一个小游戏。 首先,让我们理解Activity切换。在Android中,Activity的切换通常是通过Intent对象来完成的。...

    android activity 动画切换

    这样,当从当前Activity切换到`NextActivity`时,就会有淡入淡出的动画效果。 除了使用`overridePendingTransition()`,我们还可以通过重写`onActivityResult()`方法来为返回动画设置自定义动画。只需在返回时调用...

    android中activity切换动画

    本文将深入探讨如何在Android中实现Activity切换动画,包括从左边、右边、上边和下边进入的动画效果。 首先,Android提供了两种类型的动画:视图动画(View Animation)和属性动画(Property Animation)。视图动画...

    Activity切换动画

    总结来说,Activity切换动画是Android开发中的一个重要方面,它能够增强应用的视觉表现力和用户体验。通过理解和熟练运用Android提供的动画机制,开发者可以创建出各种个性化的动画效果,同时解决特定场景下的动画...

Global site tag (gtag.js) - Google Analytics