博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android开发之Intent的传值--Application
阅读量:5209 次
发布时间:2019-06-14

本文共 5796 字,大约阅读时间需要 19 分钟。

每当我们想要将输入的值传递到多个界面时,只是使用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之间共享数据。

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

转载于:https://www.cnblogs.com/bingbingliang-xiaomonv/p/5199163.html

你可能感兴趣的文章
深度学习方法(五):卷积神经网络CNN经典模型整理Lenet,Alexnet,Googlenet,VGG,Deep Residual Learning...
查看>>
无线局域网的组建
查看>>
Mogodb 学习一
查看>>
栈和队列----合并两个有序的单链表
查看>>
Day3 第二段python
查看>>
第七章 数组实验
查看>>
SQL Server 2005调整兼容级别,存储过程:sp_dbcmptlevel
查看>>
多表查询、可视化工具、pymysql模块
查看>>
统计难题
查看>>
关于pip install dlib 出各种问题什么的。。。
查看>>
一些不常用的且功能相当有用的DELPHI函数
查看>>
启动项目显示:非法字符:'\ufeff' 和需要 class ,interface 或者 enum 错误
查看>>
课上内容
查看>>
mysql workbench 建表时 PK,NN,UQ,BIN,UN,ZF,AI解释
查看>>
The mutable default argument in Python
查看>>
js字符串与16进制互相转换
查看>>
换个心境搞IT–在IT职场如何打拼?
查看>>
truncate和 delete的区别:
查看>>
Visual Studio VS如何切换代码自动换行
查看>>
JAVA基础整理-110.Java 网络编程
查看>>