Activity组件(三):通过对象实现信息添加及展示
在对组件进行注册时,只注册了EditText,却忘记了Button,导致程序一直闪退
输入信息
点击添加
成功跳转页面,并将数据传递
User.java
package com.example.register; import android.os.Parcel;
import android.os.Parcelable; public class User implements Parcelable {
private String name;
private String age;
private String sex; public User(String name, String age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
} public User() {
} //读取
protected User(Parcel in) {
name = in.readString();
age = in.readString();
sex = in.readString();
} //写入
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(name);
dest.writeString(age);
dest.writeString(sex);
} @Override
public int describeContents() {
return 0;
} public static final Creator<User> CREATOR = new Creator<User>() {
@Override
public User createFromParcel(Parcel in) {
return new User(in);
} @Override
public User[] newArray(int size) {
return new User[size];
}
}; 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 getSex() {
return sex;
} public void setSex(String sex) {
this.sex = sex;
}
}
UserAddActivity.java
package com.example.register; import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast; import androidx.annotation.Nullable; public class UserAddActivity extends Activity {
private EditText mName;
private EditText mAge;
private EditText mSex;
private Button mAddBtn;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_adduser); initView();
initListener(); } private void initListener() {
mAddBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//添加按钮被点击了
handlerAdduser();
}
}); } private void handlerAdduser() {
String name = mName.getText().toString().trim();
if (TextUtils.isEmpty(name)) {
Toast.makeText(this, "输入的姓名为空", Toast.LENGTH_SHORT).show();
return;
}
String age = mAge.getText().toString().trim();
if (TextUtils.isEmpty(age)) {
Toast.makeText(this, "输入的年龄为空", Toast.LENGTH_SHORT).show();
return;
}
String sex = mSex.getText().toString().trim();
if (TextUtils.isEmpty(sex)) {
Toast.makeText(this, "输入的性别为空", Toast.LENGTH_SHORT).show();
return;
}
//跳转并传值给AddShowActivity
Intent intent = new Intent(this, AddShowActivity.class); User user = new User();
//将属性封装到user对象中
user.setName(name);
user.setAge(age);
user.setSex(sex);
intent.putExtra("userKey",user);
startActivity(intent);
} private void initView() {
mName=this.findViewById(R.id.add_name);
mAge=this.findViewById(R.id.add_age);
mSex=this.findViewById(R.id.add_sex);
mAddBtn=this.findViewById(R.id.add_btn);
} }
activity_adduser.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"> <TextView
android:layout_width="wrap_content"
android:text="添加人员信息"
android:textSize="30sp"
android:layout_marginTop="20dp"
android:layout_gravity="center"
android:layout_height="wrap_content"> </TextView>
<EditText
android:id="@+id/add_name"
android:layout_width="match_parent"
android:text="请输入姓名"
android:layout_gravity="center"
android:layout_height="wrap_content"> </EditText>
<EditText
android:id="@+id/add_age"
android:layout_width="match_parent"
android:text="请输入年龄"
android:layout_gravity="center"
android:layout_height="wrap_content"> </EditText>
<EditText
android:id="@+id/add_sex"
android:layout_width="match_parent"
android:text="请输入性别"
android:layout_gravity="center"
android:layout_height="wrap_content"> </EditText>
<Button
android:id="@+id/add_btn"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:text="添加"
android:layout_height="wrap_content"> </Button>
</LinearLayout>
AddShowActivity.java
package com.example.register; import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Parcelable;
import android.widget.TextView; import androidx.annotation.Nullable; public class AddShowActivity extends Activity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_addshow); TextView nameshow =(TextView) this.findViewById(R.id.add_name_show);
TextView ageshow =(TextView) this.findViewById(R.id.add_age_show);
TextView sexshow =(TextView) this.findViewById(R.id.add_sex_show);
//通过getIntent获取MainActivity传来的intent
Intent intent = getIntent();
if (intent!=null) { User user =intent.getParcelableExtra("userKey");
if (user!=null) { nameshow.setText(user.getName());
ageshow.setText(user.getAge());
sexshow.setText(user.getSex());
}
}
}
}
activity_addshow.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"> <TextView
android:layout_width="wrap_content"
android:text="添加信息展示"
android:textSize="30sp"
android:layout_gravity="center"
android:layout_height="wrap_content"> </TextView> <TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:text="姓名"
android:textSize="20sp"
android:layout_height="wrap_content"> </TextView>
<TextView
android:id="@+id/add_name_show"
android:layout_width="wrap_content"
android:textSize="25sp"
android:layout_height="wrap_content"> </TextView> <TextView
android:id="@+id/age"
android:layout_width="wrap_content"
android:text="年龄"
android:textSize="20sp"
android:layout_height="wrap_content"> </TextView>
<TextView
android:id="@+id/add_age_show"
android:layout_width="wrap_content"
android:textSize="25sp"
android:layout_height="wrap_content"> </TextView> <TextView
android:id="@+id/sex"
android:layout_width="wrap_content"
android:text="性别"
android:textSize="20sp"
android:layout_height="wrap_content"> </TextView>
<TextView
android:id="@+id/add_sex_show"
android:layout_width="wrap_content"
android:textSize="25sp"
android:layout_height="wrap_content"> </TextView> </LinearLayout>
Activity组件(三):通过对象实现信息添加及展示的更多相关文章
- C#/AutoCAD 2018/ObjectArx/二次开发添加图形对象步骤和添加直线的例子(三)
1.创建一个图形对象的步骤如下(1)得到创建对象的图形数据库:(2)在内存中创建实体类的一个对象:(3)定义一个指向当前数据库的事务处理:(4)打开图形数据库的块表:(5)打开一个存储实体的块表记录( ...
- Android应用程序窗口(Activity)的视图对象(View)的创建过程分析
从前文可知道,每一个Activity组件都有一个关联的Window对象,用来描述一个应用程序窗口.每一个应用程序窗口内部又包含有一个View对象,用来描述应用程序窗口的视图.应用程序窗口视图是真正用来 ...
- Activity组件的UI实现
Activity组件的UI实现需要与WindowManagerService服务和SurfaceFlinger服务进行交互 1. Activity组件在启动完成后,会通过一个类型为Session的Bi ...
- Android窗口管理服务WindowManagerService显示Activity组件的启动窗口(Starting Window)的过程分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8577789 在Android系统中,Activ ...
- ASP.NET自定义控件组件开发 第三章 为控件添加事件 前篇
原文:ASP.NET自定义控件组件开发 第三章 为控件添加事件 前篇 第三章 为控件添加事件 好了,我们之前以前开发一个控件.而且也添加了属性,开发也很规范,但是那个控件还差最后一点:添加事件. 系列 ...
- ASP.NET自定义控件组件开发 第三章 为控件添加事件 后篇
原文:ASP.NET自定义控件组件开发 第三章 为控件添加事件 后篇 第三章 为控件添加事件 后篇 前一篇文章只是简单的说了下事件,但是大家应该方法,在ASP.NET自定义控件中只是简单那么定义事件是 ...
- {django模型层(二)多表操作}一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询、分组查询、F查询和Q查询
Django基础五之django模型层(二)多表操作 本节目录 一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询.分组查询.F查询和Q查询 六 xxx 七 ...
- java对象头信息和三种锁的性能对比
java头的信息分析 首先为什么我要去研究java的对象头呢? 这里截取一张hotspot的源码当中的注释 这张图换成可读的表格如下 |-------------------------------- ...
- Android的Activity组件
本章主题是Activity组件:Activity是Android四大组价之一,其重要地位自然不用说.“Activity是应用程序中可见的交互组件的基类,大致上等同于传统桌面应用个程序开发中的窗体.”( ...
随机推荐
- LeetCode题解分类汇总(包括剑指Offer和程序员面试金典,持续更新)
LeetCode题解汇总(持续更新,并将逐步迁移到本博客列表中) 剑指Offer 数据结构 链表 序号 题目 难度 06 从尾到头打印链表 简单 18 删除链表的节点 简单 22 链表中倒数第k个节点 ...
- UVA - 10954 Add All (全部相加)(Huffman编码 + 优先队列)
题意:有n(n <= 5000)个数的集合S,每次可以从S中删除两个数,然后把它们的和放回集合,直到剩下一个数.每次操作的开销等于删除的两个数之和,求最小总开销.所有数均小于10^5. 分析:按 ...
- OpenCV3 Ref SVM : cv::ml::SVM Class Reference
OpenCV3 Ref SVM : cv::ml::SVM Class Reference OpenCV2: #include <opencv2/core/core.hpp>#inclu ...
- DW1000芯片定位技术解析
近些年来随着物联网和机器人技术的大发展,精确定位技术的热度也随之攀升.目前精确定位的技术有很多,如基于wifi.RFID.zigbee.超声波.UWB等技术都可以实现精准定位.由于技术的不同,精度也不 ...
- Spring Tools 4 STS没有创建Dynamic Web Project的选项 以及 Spring Tools 4 STS New 菜单没有Spring Bean Configuration File选项
Spring Tools 4 STS没有创建Dynamic Web Project的选项 STS4默认不带Dynamic Web Project插件. 解决方法:1.打开:Help 选择 Instal ...
- 2.9 初识 jetpack
Android Jetpack 组件 Android Jetpack 组件是库的集合 这些库是为协同工作而构建的,也可以单独采用,同时利用 Kotlin 语言功能帮助提高工作效率.可全部使用,也可混合 ...
- Java9,8,7中接口的内容
在Java 9+版本中,接口的内容可以有: 1:成员变量其实是常量格式:[public][static][final] 数据类型 常量名称 =数据值:注意: 常量必须进行赋值,而且一旦赋值不能改变 常 ...
- Hour of Code|京东云邀您一起,“码”上行动
"如果我并不希望成为一名程序员,那么为什么需要学习编程呢?" 相信很多人对于现在鼓励从小就学习编程的趋势都在心里问过这样的一个问题.在回答这个问题前,先和大家分享一个小故事吧. 1 ...
- 吴裕雄--天生自然Django框架开发笔记:Django 表单
HTML表单是网站交互性的经典方式. 用Django对用户提交的表单数据进行处理. HTTP 请求 HTTP协议以"请求-回复"的方式工作.客户发送请求时,可以在请求中附加数据.服 ...
- Django回顾之_03_Model属性及后端配置
1. Django ORM O(objects):类和对象. R(Relation):关系,关系数据库中的表格. M(Mapping):映射. Django ORM框架的功能: a) 建立模型类和表之 ...