每当我们想要将输入的值传递到多个界面时,只是使用Intent传值的话,就会有一些的弊端。

下面我就以三个页面为例,进行简单的说明一下:

思路:

1.第一个页面是客户输入相关的信息。

2.将客户输入的信息的第一项(我这里设的是name),在第二个页面中进行显示。

3.在第二个页面中直接跳转到第三个页面中,显示客户输入的全部的信息。

首先,在工程中创建一个MyApplication类,类的创建如下:

package com.example.test;



import android.app.Application;



public class MyApplication extends Application{



private static MyApplication singleton;

private String id;

private String name;

private String age;

private String address;

private String email;





public static MyApplication getInstance(){

return singleton;

}



public String getId() {

return id;

}



public void setId(String id) {

this.id = id;

}



public String getName() {

return name;

}



public void setName(String name) {

this.name = name;

}



public String getAge() {

return age;

}



public void setAge(String age) {

this.age = age;

}



public String getAddress() {

return address;

}



public void setAddress(String address) {

this.address = address;

}



public String getEmail() {

return email;

}



public void setEmail(String email) {

this.email = email;

}



public void onCreate(){

super.onCreate();

singleton = this;

}



}

上面创建一个用户的name,age,address,email信息。

在创建Application类时需要注意的是,这个类必须得在配置文件中进行配置才可以,要不然会抛出空异常错误。

具体实现的代码如下:

<application

android:allowBackup="true"

android:name="com.example.test.MyApplication"  //特别注意

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

<activity

android:name="com.example.test.MainActivity"

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="com.example.test.Activitytwo">

<intent-filter >

<action android:name="android.intent.action.VIEW"/>

</intent-filter>

</activity>

<activity

android:name="com.example.test.Activitythree">

<intent-filter >

<action android:name="android.intent.action.VIEW"/>

</intent-filter>

</activity>

</application>

接下来就是Activity中的代码的实现。在这里我就不写布局文件中的代码了,附上图,大家自己去写,也不是很难。

MainActivity的代码如下:

package com.example.test;



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;



public class MainActivity extends Activity {



private MyApplication myapp;

private EditText edtname;

private EditText edtage;

private EditText edtaddress;

private EditText edtemail;

private Button post;

private Button get;

private Button next;

private Button three;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

myapp = MyApplication.getInstance();

edtname = (EditText)findViewById(R.id.name);

edtage = (EditText)findViewById(R.id.age);

edtaddress = (EditText)findViewById(R.id.place);

edtemail = (EditText)findViewById(R.id.email);

next =(Button)findViewById(R.id.next);

next.setOnClickListener(new OnClickListener() {

 

@Override

public void onClick(View v) {

test();

Intent inten = new Intent(MainActivity.this,Activitytwo.class);

startActivity(inten);



}

});

public void test(){



myapp.setName(edtname.getText().toString());

myapp.setAge(edtage.getText().toString());

myapp.setAddress(edtaddress.getText().toString());

myapp.setEmail(edtemail.getText().toString());



}

}

Activitytwo代码实现:

package com.example.test;





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;





public class Activitytwo extends Activity{



private String showname;

private TextView show;

private Button send;



@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.activitytwo);



show = (TextView)findViewById(R.id.show);

send = (Button)findViewById(R.id.send);



showname = MyApplication.getInstance().getName();

show.setText(showname);



send.setOnClickListener(new OnClickListener() {



@Override

public void onClick(View arg0) {





Intent intent = new Intent(Activitytwo.this,Activitythree.class);

startActivity(intent);

finish();

}

});



}



}

Activitythree代码实现:

package com.example.test;





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;





public class Activitythree extends Activity{



private TextView showname;

private TextView showage;

private TextView showplace;

private TextView showemail;

private Button finish;



private String name;

private String age;

private String place;

private String email;



@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.activitythree);



showname = (TextView)findViewById(R.id.showname);

showage = (TextView)findViewById(R.id.showage);

showplace = (TextView)findViewById(R.id.showplace);

showemail = (TextView)findViewById(R.id.showemail);

finish = (Button)findViewById(R.id.finish);



name = MyApplication.getInstance().getName();

age = MyApplication.getInstance().getAge();

place = MyApplication.getInstance().getAddress();

email = MyApplication.getInstance().getEmail();



showname.setText(name);

showage.setText(age);

showplace.setText(place);

showemail.setText(email);



finish.setOnClickListener(new OnClickListener() {



@Override

public void onClick(View v) {

Intent intent = new Intent(Activitythree.this,MainActivity.class);

startActivity(intent);

finish();

}

});



}

}

上述就是我的基本的代码的实现以及界面的设计,界面不美观只是为了实现功能而已。

Application类是实现多个Activity之间共享数据。

希望上面的说明能够让大家明白。

Android开发之Intent的传值--Application的更多相关文章

  1. Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面

    现在开发中的功能需要直接跳转到拨号.联系人.短信界面等等,查找了很多资料,自己整理了一下. 1.跳转到拨号界面,代码如下: 1)直接拨打 Intent intentPhone = new Intent ...

  2. android开发之Intent.setFlags()_让Android点击通知栏信息后返回正在运行的程序

    android开发之Intent.setFlags()_让Android点击通知栏信息后返回正在运行的程序     在应用里使用了后台服务,并且在通知栏推送了消息,希望点击这个消息回到activity ...

  3. Android开发之Intent略解

    Intent是一种运行时绑定(run-time binding)机制,它能在程序运行过程中连接两个不同的组件.通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意 ...

  4. Android开发之Intent.Action

    1 Intent.ACTION_MAIN String: android.intent.action.MAIN 标识Activity为一个程序的開始.比較经常使用. Input:nothing Out ...

  5. Android开发之Intent.Action 各种Action的常见作用

    1 Intent.ACTION_MAIN String: android.intent.action.MAIN 标识Activity为一个程序的开始.比较常用. Input:nothing Outpu ...

  6. Android开发之Intent.Action Android中Intent的各种常见作用

    1 Intent.ACTION_MAIN String: android.intent.action.MAIN 标识Activity为一个程序的开始.比较常用. Input:nothing Outpu ...

  7. Android开发之旅: Intents和Intent Filters(理论部分)

    引言 大部分移动设备平台上的应用程序都运行在他们自己的沙盒中.他们彼此之间互相隔离,并且严格限制应用程序与硬件和原始组件之间的交互. 我们知道交流是多么的重要,作为一个孤岛没有交流的东西,一定毫无意义 ...

  8. Android开发之旅5:应用程序基础及组件

    引言 上篇Android开发之旅:应用程序基础及组件介绍了应用程序的基础知识及Android的四个组件,本篇将介绍如何激活组关闭组件等.本文的主题如下: 1.激活组件:意图(Intents) 1.1. ...

  9. Android开发之旅2:HelloWorld项目的目录结构

    引言 前面Android开发之旅:环境搭建及HelloWorld,我们介绍了如何搭建Android开发环境及简单地建立一个HelloWorld项目,本篇将通过HelloWorld项目来介绍Androi ...

随机推荐

  1. 深刻理解C#的传值调用和传引用调用

    传值调用和传引用调用是几乎所有主流语言都会涉及到的问题,下面我谈谈我对C#中传值调用和传引用调用的理解. 1. 一般对C#中传值调用和传引用调用的理解 如果传递的参数是基元类型(int,float等) ...

  2. PHP ‘scan’函数拒绝服务漏洞

    漏洞名称: PHP ‘scan’函数拒绝服务漏洞 CNNVD编号: CNNVD-201311-464 发布时间: 2013-12-06 更新时间: 2013-12-06 危害等级: 中危   漏洞类型 ...

  3. Linux Kernel ‘exitcode_proc_write()’函数本地缓冲区溢出漏洞

    漏洞名称: Linux Kernel ‘exitcode_proc_write()’函数本地缓冲区溢出漏洞 CNNVD编号: CNNVD-201311-061 发布时间: 2013-11-07 更新时 ...

  4. vijos p1193 扫雷

      描述 相信大家都玩过扫雷的游戏.那是在一个n*n的矩阵里面有一些雷,要你根据一些信息找出雷来.万圣节到了,“余”任过流行起了一种简单的扫雷游戏,这个游戏规则和扫雷一样,如果某个格子没有雷,那么它里 ...

  5. Xcode工程中全局搜索汉字的方法

    打开”Find Navigator” 切换搜索模式到 “Find > Regular Expression” 输入@"[^"]*[\u4E00-\u9FA5]+[^" ...

  6. 分布式缓存BeIT Memcached简介

    分布式缓存BeIT Memcached简介 或许你还没有用到过分布式缓存,在web集群的情况下,它可以很好的让一部分常用数据常驻服务器内存而不用担心各台web不同步.下面稍微介绍一下beitmemca ...

  7. Android学习笔记(1)—Android Studio安装

    Android Studio 是一个全新的 Android 开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工 ...

  8. lua与C/C++交互

    Lua设计小巧很容易与C/C++进行交互,下面我们具体讲解C/C++中如何调用lua,而lua中又如何调用C代码. 首先lua和C交互的一个重要的数据结构lua_State,它是进行数据交换的堆栈,按 ...

  9. LightOJ 1356 Prime Independence 二分图最大独立集,HK算法

    这个题唯一需要说的就是普通的匈牙利算法是O(nm)的,过不了 然后HK算法可以O(n^0.5m),这个算法可以每次找很多同样长度的最短增广路 分析见:http://www.hardbird.net/l ...

  10. 在内部架设NuGet服务器

    在公司内部有很多基础框架或者基础组件,甚至对于使用SOA架构的公司来说,会有大量的业务组件的契约程序集,对于这些框架或组件的引用管理有的人使用源代码管理工具,但是NuGet相比源代码管理工具更方便: ...