在对组件进行注册时,只注册了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组件(三):通过对象实现信息添加及展示的更多相关文章

  1. C#/AutoCAD 2018/ObjectArx/二次开发添加图形对象步骤和添加直线的例子(三)

    1.创建一个图形对象的步骤如下(1)得到创建对象的图形数据库:(2)在内存中创建实体类的一个对象:(3)定义一个指向当前数据库的事务处理:(4)打开图形数据库的块表:(5)打开一个存储实体的块表记录( ...

  2. Android应用程序窗口(Activity)的视图对象(View)的创建过程分析

    从前文可知道,每一个Activity组件都有一个关联的Window对象,用来描述一个应用程序窗口.每一个应用程序窗口内部又包含有一个View对象,用来描述应用程序窗口的视图.应用程序窗口视图是真正用来 ...

  3. Activity组件的UI实现

    Activity组件的UI实现需要与WindowManagerService服务和SurfaceFlinger服务进行交互 1. Activity组件在启动完成后,会通过一个类型为Session的Bi ...

  4. Android窗口管理服务WindowManagerService显示Activity组件的启动窗口(Starting Window)的过程分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8577789 在Android系统中,Activ ...

  5. ASP.NET自定义控件组件开发 第三章 为控件添加事件 前篇

    原文:ASP.NET自定义控件组件开发 第三章 为控件添加事件 前篇 第三章 为控件添加事件 好了,我们之前以前开发一个控件.而且也添加了属性,开发也很规范,但是那个控件还差最后一点:添加事件. 系列 ...

  6. ASP.NET自定义控件组件开发 第三章 为控件添加事件 后篇

    原文:ASP.NET自定义控件组件开发 第三章 为控件添加事件 后篇 第三章 为控件添加事件 后篇 前一篇文章只是简单的说了下事件,但是大家应该方法,在ASP.NET自定义控件中只是简单那么定义事件是 ...

  7. {django模型层(二)多表操作}一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询、分组查询、F查询和Q查询

    Django基础五之django模型层(二)多表操作 本节目录 一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询.分组查询.F查询和Q查询 六 xxx 七 ...

  8. java对象头信息和三种锁的性能对比

    java头的信息分析 首先为什么我要去研究java的对象头呢? 这里截取一张hotspot的源码当中的注释 这张图换成可读的表格如下 |-------------------------------- ...

  9. Android的Activity组件

    本章主题是Activity组件:Activity是Android四大组价之一,其重要地位自然不用说.“Activity是应用程序中可见的交互组件的基类,大致上等同于传统桌面应用个程序开发中的窗体.”( ...

随机推荐

  1. 编程入门-Eclipse项目导出和导入

    编程入门-Eclipse项目导出和导入 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.导出项目 1>.如下图所示,在项目目录上右击鼠标,依次点击"Export& ...

  2. jQuery琐碎

    函数(以click事件为例)在jsp页面和js中的不同写法 onclick="getInfo(this);" function getInfo(obj){ var $this=$( ...

  3. 再战希捷:西部数据透露96层闪存已用于消费级SSD

    导读 96层堆叠3D NAND闪存已经成为行业主流,包括西部数据这样的传统机械硬盘大厂,也在逐步普及96层闪存,并已经用于消费级SSD. 96层堆叠3D NAND闪存已经成为行业主流,包括西部数据这样 ...

  4. HTTP协议、时间戳

    1.什么是HTTP协议 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式.协作式和超媒体信息系统的应用层协议.HTTP是万维网的数据通信的 ...

  5. Swift轮播控件快速入门——FSPagerView

    2018年03月01日 19:17:42 https://blog.csdn.net/sinat_21886795/article/details/79416068 今天介绍一个IOS的轮播控件FSP ...

  6. Mysql修改默认提示符

    mysql修改默认提示符 临时修改 mysql> prompt [\u@db1 \r:\m:\s]--> PROMPT set to '[\u@db1 \r:\m:\s]-->' [ ...

  7. mysql第四篇:数据操作之多表查询

    mysql第四篇:数据操作之多表查询 一.多表联合查询 #创建部门 CREATE TABLE IF NOT EXISTS dept ( did int not null auto_increment ...

  8. xv6 系统调用

    1. 系统调用的实现 开发程序需所有的接口在user.h中,包含两部分system call和ulib user.h中的系统接口函数在usys.S中通过汇编实现 #define SYSCALL(nam ...

  9. CodeForces 51C 二分搜索

    校队选拔神马的事情就不说了,哥们反正是要崛起的人了! 感谢何骐的提醒. 校队选拔的时候又被二分给坑了,所以还想做几道二分搜索的题目来练练手. C - Three Base Stations Time ...

  10. windows下使用mysqlbinlog做数据恢复时出现mysqlbinlog: File 'D:\MariaDB' not found (Errcode: 2)

    出现如下这种情况是因为为找到bin-log日志,但为什么没有查到了??? 从图中可以看出系统只到到了D:\MariaDB但路径并没有查全,默认在windows下是以空格为分隔符的,所以他把D:\Mar ...