在对组件进行注册时,只注册了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. 在Mac上如何运行jar文件

    操作一:编译,打包. 操作二: 运行jar文件,提示:jar中没有主清单属性. 解决办法: 使用解压工具解压HelloWorld.jar文件,往MANIFEST.MF中添加Main-Class. 1. ...

  2. P4147 玉蟾宫(悬线法求最大子矩阵)

    P4147 玉蟾宫 悬线法 ,\(l_{i,j},r_{i,j},up_{i,j}\) 分别表示 \((i,j)\) 这个点向左,右,上能到达的远点.然后面积就很好办了.具体实现见代码. 然而,还有更 ...

  3. 8 ~ express ~ 基于数据库的验证

    1,首先 在router/api.js 中引入数据库定义好的模型  /models/User.js var User = require('../models/User') //User返回的是一个构 ...

  4. Spring AOP 基本的使用

    1. jar包 2.全局配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&q ...

  5. PWC6199:Generated servlet error:Only a type can be imported. org.apache.jasper.tagplugins.jstl.core.ForEach resolves to a package

    <%@ import="org.apache.jasper.tagplugins.jstl.core.ForEach"%> 去掉这条语句,就不报错了.所以问题就出在这里 ...

  6. ssm搭建,maven,javaConfig

    基于java配置SSM,eclipse 新建maven,web项目 .... 项目结构: jar包 pom.xml spring和DispatcherServlet上下文,相当于web.xml pub ...

  7. Java8 Optional类使用小结

    Optional类的Javadoc描述如下: 这是一个可以为null的容器对象.如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象. of:  为非null的值创建一 ...

  8. Django ORM多表查询练习

    ORM多表查询 创建表结构: from django.db import models # 创建表结构 # Create your models here. class Class_grade(mod ...

  9. 51nod 1013:3的幂的和 快速幂

    1013 3的幂的和 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 求:3^0 + 3^1 +...+ 3^(N) mod 1000000007 ...

  10. Java IO流操作 (I)

    1.FileWriter 写数据---输出流---由控制台向文件中写数据 import java.io.FileWriter; import java.io.IOException; /* * 写数据 ...