【Android】入门案例(一)——简单登录

前言

实习期间,闲来无事,和师傅学学Android入门一下

Android的环境搭建和配置就不多说了,直接上干货

一、效果

先看下本案例想要实现的效果,由于是第一个小案例,所以并没有连接数据库,后面的博客应会有涉及

 二、步骤

1.新建工程

2.User.java

public class User implements Serializable {
    private String username;
    private String password;
    private String sex;

    public User() {
    }

    public User(String username, String password) {
        this.username = username;
        this.password = password;
    }

    public User(String username, String password, String sex) {
        this.username = username;
        this.password = password;
        this.sex = sex;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
}

3.activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.guao_john.myapplication.MainActivity">

    <LinearLayout
        android:layout_marginTop="20dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:id="@+id/tv_username"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="用户名:"
            android:textSize="30sp"
            />
        <EditText
            android:id="@+id/et_username"
            android:layout_width="168dp"
            android:layout_height="wrap_content"
            android:hint="请输入用户名"
            android:textSize="20sp"
            />
        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <TextView
                android:id="@+id/tv_password"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="密    码:"
                android:textSize="30sp"
                />
            <EditText
                android:id="@+id/et_password"
                android:layout_width="173dp"
                android:layout_height="wrap_content"
                android:hint="请输入密码"
                android:textSize="20sp"
                />
        </LinearLayout>

        <LinearLayout
            android:layout_marginTop="20dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="性    别:"
                android:textSize="30sp"
                android:id="@+id/textView2"
                android:layout_weight="1" />

            <RadioButton
                android:layout_marginLeft="10dp"
                android:id="@+id/rb_man"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="男"
                android:textSize="26sp"
                android:layout_weight="1" />

            <RadioButton
                android:id="@+id/rb_woman"
                android:layout_marginLeft="20dp"
                android:layout_gravity="center_vertical"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="女"
                android:textSize="26sp"
                android:layout_weight="1" />

            <RadioGroup
                android:layout_marginLeft="20dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

            </RadioGroup>
        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="50dp"
            android:layout_marginTop="30dp"
            >

        </LinearLayout>

        <Button
            android:id="@+id/btn_login"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="登录"
            android:textSize="20sp"
            android:layout_weight="1" />

        <Button
            android:id="@+id/btn_cancel"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="取消"
            android:textSize="20sp"/>
    </LinearLayout>

</RelativeLayout>

4.MainActivity.java

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    Button login,cancle;
    EditText user,pwd;
    RadioButton man,woman;
    String username,password,sex;
    User u;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        login=(Button)findViewById(R.id.btn_login);
        cancle=(Button)findViewById(R.id.btn_cancel);

        user=(EditText)findViewById(R.id.et_username);
        pwd=(EditText)findViewById(R.id.et_password);

        man=(RadioButton)findViewById(R.id.rb_man);
        woman=(RadioButton)findViewById(R.id.rb_woman);

        login.setOnClickListener(this);
        cancle.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_login:
                username = user.getText().toString().trim();
                password = pwd.getText().toString().trim();
                if(man.isClickable()) {
                    sex = "男";
                } else if(woman.isClickable()) {
                    sex = "女";
                    u = new User(username,password,sex);
                }
                u = new User(username,password,sex);
                checkLogin(u);
                break;
            case R.id.btn_cancel:
                break;
        }
    }

    private void checkLogin(User u) {

        if(u.getUsername().equals("WZJ") && u.getPassword().equals("wzj") && u.getSex().equals("男")) {
            Intent intent=new Intent(this,infoActivity.class);
            intent.putExtra("user",u);
            startActivity(intent);
        }

    }
}

5.activity_info.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_info"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.guao_john.myapplication.infoActivity">

    <TextView
        android:id="@+id/info_username"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Text Test:"
        android:textSize="30sp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

    <TextView
        android:id="@+id/info_password"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Text Test:"
        android:textSize="30sp"
        android:layout_marginTop="36dp"
        android:layout_below="@+id/info_username"
        android:layout_alignLeft="@+id/info_username"
        android:layout_alignStart="@+id/info_username" />

    <TextView
        android:id="@+id/info_sex"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Text Test:"
        android:textSize="30sp"
        android:layout_marginTop="36dp"
        android:layout_below="@+id/info_password"
        android:layout_alignLeft="@+id/info_password"
        android:layout_alignStart="@+id/info_password" />

</RelativeLayout>

6.infoActivity.java

public class infoActivity extends AppCompatActivity {
    Button button;
    TextView tv1,tv2,tv3;
    String sex,username,password;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_info);

        tv1=(TextView)findViewById(R.id.info_username);
        tv2=(TextView)findViewById(R.id.info_password);
        tv3=(TextView)findViewById(R.id.info_sex);

        Intent getData=getIntent();
        User user = (User)getData.getSerializableExtra("user");
        tv1.setText("Your username is " +user.getUsername());
        tv2.setText("Your sex is "+user.getSex());
        tv3.setText("Your password is "+user.getPassword());
    }
}

三、注解

1、Intent的概念:

  • Android中提供了Intent机制来协助应用间的交互与通讯,或者采用更准确的说法是,Intent不仅可用于应用程序之间,也可用于应用程序内部的activity, service和broadcast receiver之间的交互。Intent这个英语单词的本意是“目的、意向、意图”。
  • Intent是一种运行时绑定(runtime binding)机制,它能在程序运行的过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来响应。

2.TextView就是文本视图,只是用来显示文字的。 

标签<TextView/>代表着我们要在Activity中添加一个个TextView, 标签中可以设置一些属性。

(1).android:id属性代表着TextView的Id,也就是TextView的唯一标示,在java代码中我们可以通过findViewById()方法来通过Id获取控件。上述控件的唯一id为name_text_view。

(2).android:layout_width属性代表着控件的宽度,该属性的值是match_parent, 表示该控件的宽度与父视图的宽度相同。

(3).android:layout_height属性代表着控件的高度,该属性的值是wrap_content,表示控件的高度根据内容的高度进行改变。

(4).android:gravity属性代表着TextView中文字对齐方式,有多种方式,我们在此选的是center,居中显示。

(5).android:textSize属性代表着TextView中文字的型号,也就是文字的大小。

(6).android:textColor属性设置的是TextView中文字的颜色,属性值是16进制的色值。

(7).android:text属性就是用来设置TextView显示的值的。

3.EditText 接收用户输入的数据

(1).android:hint属性后边是一个字符串,其实就是用来占位用的字符串,功能是提示用户该输入框是干嘛的,在iOS开发中叫做Placeholder。

(2).android:macLines 用来设置输入框的最大行数。

在Activity中获取EditText对象,也是通过Id方式,通过id实例化EditText对象,并获取其中的文

4.Button  在Activity的类中也是使用findViewById来通过Id获取该按钮,获取按钮后我们需要给按钮绑定点击事件。也就是点击按钮要做的事情,下方给出了两中方式,一种是块的形式,一种是委托代理的形式。 

(1).接口回调的形式绑定点击事件
Button button = (Button) findViewById(R.id.click_button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //点击按钮要做的事情
            }
        });
(2)委托代理
button.setOnClickListener(this);

//重写委托回调的方法
    /**
     * Called when a view has been clicked.
     *
     * @param v The view that was clicked.
     */
    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.click_button:
                //点击按钮后要做的事情
                break;
            default:
                break;
        }
    }

 一个简单的小案例就完成喽,愿各位也能顺利成功!

后续的学习将不断跟进博文!

发布了74 篇原创文章 · 获赞 975 · 访问量 74万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览