每日总结3.30

每日总结:

  所花时间:6h

  代码量:300行

  博客量:1篇

————————————~~~~~~刷~~~~~————————————————

今天课下的学习内容主要是安卓的结对作业的完善,我这里已经基本完善了,下面给出三种功能的输出界面和部分代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="10dp"
    android:orientation="vertical">

    <RadioGroup
        android:id="@+id/rg_login"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal">

        <RadioButton
            android:id="@+id/rb_password"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:checked="true"
            android:text="密码登录"
            android:textColor="@color/black"
            android:textSize="17dp" />

        <RadioButton
            android:id="@+id/rb_verifycode"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="验证码登录"
            android:textColor="@color/black"
            android:textSize="17dp" />
    </RadioGroup>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="手机号码:"
            android:textColor="@color/black"
            android:textSize="17dp" />

        <EditText
            android:id="@+id/et_phone"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="5dp"
            android:layout_weight="1"
            android:background="@drawable/editext_selector"
            android:hint="请输入手机号码"
            android:inputType="number"
            android:maxLength="11"
            android:textColor="@color/black"
            android:textColorHint="@color/grey"
            android:textSize="17dp" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/tv_password"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="登陆密码:"
            android:textColor="@color/black"
            android:textSize="17dp" />

        <RelativeLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1">

            <EditText
                android:id="@+id/et_password"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginTop="5dp"
                android:layout_marginBottom="5dp"
                android:layout_weight="1"
                android:background="@drawable/editext_selector"
                android:hint="请输入密码"
                android:inputType="numberPassword"
                android:textColor="@color/black"
                android:textColorHint="@color/grey"
                android:textSize="17dp" />

            <Button
                android:id="@+id/btn_forget"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_alignParentEnd="true"
                android:text="忘记密码"
                android:textColor="@color/white"
                android:textSize="17dp" />

        </RelativeLayout>

    </LinearLayout>

    <CheckBox
        android:id="@+id/ck_remember"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="记住密码"
        android:textColor="@color/black"
        android:textSize="17dp"
        />

    <Button
        android:id="@+id/btn_login"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="登录"
        android:textColor="@color/white"
        android:textSize="17dp"
        />
</LinearLayout>

  

package com.example.subway;

import androidx.activity.result.ActivityResult;
import androidx.activity.result.ActivityResultCallback;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;

import java.util.Random;

public class LoginActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener, View.OnClickListener {

    private EditText et_phone;
    private EditText et_password;
    private TextView tv_password;
    private Button btn_forget;
    private CheckBox ck_remember;
    private RadioGroup rb_login;
    private RadioButton rb_password;
    private RadioButton rb_verifycode;
    private ActivityResultLauncher<Intent> register;
    private Button btn_login;
    private String mPassword = "123456789";
    private String mVerifyCode;
    private SharedPreferences preferences;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        rb_login = findViewById(R.id.rg_login);
        tv_password = findViewById(R.id.tv_password);
        et_password = findViewById(R.id.et_password);
        et_phone = findViewById(R.id.et_phone);
        btn_forget = findViewById(R.id.btn_forget);
        ck_remember = findViewById(R.id.ck_remember);
        rb_password = findViewById(R.id.rb_password);
        rb_verifycode = findViewById(R.id.rb_verifycode);
        btn_login = findViewById(R.id.btn_login);


        register = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
            @Override
            public void onActivityResult(ActivityResult result) {
                Intent intent = result.getData();
                if (intent != null && result.getResultCode() == Activity.RESULT_OK) {
                    mPassword = intent.getStringExtra("new_password");
                }
            }
        });

        rb_login.setOnCheckedChangeListener(this);
        btn_forget.setOnClickListener(this);
        btn_login.setOnClickListener(this);
        preferences = getSharedPreferences("config", Context.MODE_PRIVATE);
        reload();
    }

    private void reload() {
        boolean isRemember=preferences.getBoolean("isRemember",false);
        if(isRemember){
            String phone = preferences.getString("phone", null);
            String password = preferences.getString("password", null);
            if (phone != null) {
                et_phone.setText(phone);
            }
            if (password != null && password.equals(mPassword)) {
                et_password.setText(password);
                ck_remember.setChecked(true);
            }
        }

    }

    @Override
    public void onCheckedChanged(RadioGroup radioGroup, int i) {
        switch (i) {
            case R.id.rb_password:
                tv_password.setText("登陆密码:");
                et_password.setHint("请输入密码");
                //btn_forget.setVisibility(View.GONE);
                btn_forget.setVisibility(View.GONE);
                ck_remember.setVisibility(View.VISIBLE);
                break;
            case R.id.rb_verifycode:
                tv_password.setText("    验证码:");
                et_password.setHint("请输入验证码");
                btn_forget.setText("获取验证码");
                ck_remember.setVisibility(View.GONE);
                //btn_forget.setVisibility(View.VISIBLE);
                break;

        }
    }

    @Override
    public void onClick(View view) {
        String phone = et_phone.getText().toString();
        switch (view.getId()) {
            case R.id.btn_forget:
                if (phone.length() < 11) {
                    Toast.makeText(this, "请输入正确的手机号", Toast.LENGTH_SHORT).show();
                    return;
                }

                 if (rb_verifycode.isChecked()) {
                    mVerifyCode = String.format("%06d", new Random().nextInt(999999));

                    Toast.makeText(this, mVerifyCode, Toast.LENGTH_SHORT).show();
                }
                break;
            case R.id.btn_login:
                if (rb_password.isChecked()) {
                    if (!mPassword.equals(et_password.getText().toString())) {
                        Toast.makeText(this, "请输入正确的密码", Toast.LENGTH_SHORT).show();
                        return;
                    }
                    if(ck_remember.isChecked()) {
                        SharedPreferences.Editor editor = preferences.edit();
                        editor.putString("phone",et_phone.getText().toString());
                        editor.putString("password", et_password.getText().toString());
                        editor.putBoolean("isRemember",ck_remember.isChecked());
                        editor.commit();
                    }
                    loginSuccess();
                } else if (rb_verifycode.isChecked()) {
                    if (!mVerifyCode.equals(et_password.getText().toString())) {
                        Toast.makeText(this, "请输入正确的验证码", Toast.LENGTH_SHORT).show();
                        return;
                    }

                    loginSuccess();
                }
                break;
        }
    }
    private void loginSuccess() {
        String phone = et_phone.getText().toString();
        Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show();
        Intent intent = new Intent(this, MenuActivity.class);
        register.launch(intent);
    }
}

  

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="10dp"
    android:gravity="center"
    android:orientation="vertical">


    <Button
        android:id="@+id/btn_line"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="路线查询"
        android:textColor="@color/white"
        android:textSize="40dp"
        />
    <Button
        android:id="@+id/btn_site"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="站点查询"
        android:textColor="@color/white"
        android:textSize="40dp"
        />
    <Button
        android:id="@+id/btn_best"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="最短线路查询"
        android:textColor="@color/white"
        android:textSize="40dp"
        />



</LinearLayout>

  

package com.example.subway;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MenuActivity extends AppCompatActivity implements View.OnClickListener {

    private Button btn_site;
    private Button btn_line;
    private Button btn_best;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_menu);
        btn_line = findViewById(R.id.btn_line);
        btn_site = findViewById(R.id.btn_site);
        btn_best = findViewById(R.id.btn_best);

        btn_line.setOnClickListener(this);
        btn_site.setOnClickListener(this);
        btn_best.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        Intent intent = new Intent();
        switch(view.getId()){
            case R.id.btn_line:
                intent.setClass(MenuActivity.this, LineActivity.class);
                startActivity(intent);
                break;
            case R.id.btn_site:
                intent.setClass(MenuActivity.this, SiteActivity.class);
                startActivity(intent);
                break;
            case R.id.btn_best:
                intent.setClass(MenuActivity.this, BestActivity.class);
                startActivity(intent);
                break;
        }
    }
}

  

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="线路:"
            android:textColor="@color/black"
            android:textSize="17dp" />

        <EditText
            android:id="@+id/et_line"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="5dp"
            android:layout_weight="1"
            android:background="@drawable/editext_selector"
            android:hint="请输入要查询的线路"
            android:inputType="text"
            android:textColor="@color/black"
            android:textColorHint="@color/grey"
            android:textSize="17dp" />

    </LinearLayout>

    <Button
        android:id="@+id/btn_line"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="线路查询"
        android:textColor="@color/white"
        android:textSize="20dp" />

    <TextView
        android:id="@+id/tv_line"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:paddingTop="10dp"
        android:paddingBottom="10dp"
        android:textSize="25sp" />



</LinearLayout>

  

package com.example.subway;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class LineActivity extends AppCompatActivity implements View.OnClickListener {

    private TextView tv_line;
    private Button btn_line;
    private EditText et_line;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_line);
        tv_line = findViewById(R.id.tv_line);
        et_line = findViewById(R.id.et_line);
        btn_line = findViewById(R.id.btn_line);

        btn_line.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        String line=et_line.getText().toString();
        switch(line){
            case "2号线":
                tv_line.setText("积水潭,鼓楼大桥,安定门,雍和宫,东直门,东四十条,朝阳门,建国门,北京站,崇文门,前门,和平门,宣武门,长椿街,复兴门,阜成门,车公庄,西直门");
                break;
            case "5号线":
                tv_line.setText("宋家庄,刘家窑,蒲黄榆,天坛东门,磁器口,崇文门,东单,灯市口,东四,张自忠路,北新桥,雍和宫,和平里北街,和平西桥,惠新西街南口,惠新西街北口,大屯路东,北苑路北,立水桥南,立水桥,天通苑南,天通苑,天通苑北");
                break;
            case "燕房线":
                tv_line.setText("阎村东,紫草坞,阎村,星城,大石河东,马各庄,饶乐府,房山城关,燕山");
                break;

        }
    }
}

  

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="起始站:"
            android:textColor="@color/black"
            android:textSize="17dp" />

        <EditText
            android:id="@+id/et_star"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="5dp"
            android:layout_weight="1"
            android:background="@drawable/editext_selector"
            android:hint="请输入起始站"
            android:inputType="text"
            android:textColor="@color/black"
            android:textColorHint="@color/grey"
            android:textSize="17dp" />

    </LinearLayout>

    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:orientation="horizontal">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:gravity="center"
        android:text="终点站:"
        android:textColor="@color/black"
        android:textSize="17dp" />

    <EditText
        android:id="@+id/et_end"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_marginTop="5dp"
        android:layout_marginBottom="5dp"
        android:layout_weight="1"
        android:background="@drawable/editext_selector"
        android:hint="请输入终点站"
        android:inputType="text"
        android:textColor="@color/black"
        android:textColorHint="@color/grey"
        android:textSize="17dp" />

</LinearLayout>


    <Button
        android:id="@+id/btn_best"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="最优路线查询"
        android:textColor="@color/white"
        android:textSize="20dp" />

    <TextView
        android:id="@+id/tv_best"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:paddingTop="10dp"
        android:paddingBottom="10dp"
        android:textSize="25sp" />



</LinearLayout>

  

package com.example.subway;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class BestActivity extends AppCompatActivity implements View.OnClickListener {

    private TextView tv_best;
    private EditText et_star;
    private EditText et_end;
    private Button btn_best;

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

        tv_best = findViewById(R.id.tv_best);
        et_star = findViewById(R.id.et_star);
        et_end = findViewById(R.id.et_end);
        btn_best = findViewById(R.id.btn_best);

        btn_best.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        String star=et_star.getText().toString();
        String end=et_end.getText().toString();
        switch(star){
            case "北京西站":
                tv_best.setText("北京西站,湾子,达官营,广安门内,菜市口(换乘4号线),陶然亭,北京南站");
                break;
            case "十里河":
                tv_best.setText("十里河,潘家园,劲松,双井,国贸(换乘1号线),永安里,建国门,东单,王府井");
                break;
            case "公主坟":
                tv_best.setText("公主坟,军事博物馆,木樨地,南礼士路,复兴门,西单,天安门西,天安门东,王府井");
                break;
        }
    }
}

  

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="站点:"
            android:textColor="@color/black"
            android:textSize="17dp" />

        <EditText
            android:id="@+id/et_site"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="5dp"
            android:layout_weight="1"
            android:background="@drawable/editext_selector"
            android:hint="请输入要查询的站点"
            android:inputType="text"
            android:textColor="@color/black"
            android:textColorHint="@color/grey"
            android:textSize="17dp" />

    </LinearLayout>

    <Button
        android:id="@+id/btn_site"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="站点查询"
        android:textColor="@color/white"
        android:textSize="20dp" />

    <TextView
        android:id="@+id/tv_site"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:paddingTop="10dp"
        android:paddingBottom="10dp"
        android:textSize="25sp" />


</LinearLayout>

  

package com.example.subway;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class SiteActivity extends AppCompatActivity implements View.OnClickListener {

    private TextView tv_site;
    private EditText et_site;
    private Button btn_site;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_site);
        tv_site = findViewById(R.id.tv_site);
        et_site = findViewById(R.id.et_site);
        btn_site = findViewById(R.id.btn_site);

        btn_site.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        String site=et_site.getText().toString();
        switch(site){
            case "古城":
                tv_site.setText("经过:1号线");
                break;
            case "公主坟":
                tv_site.setText("经过:1号线,10号线");
                break;
            case "平安里":
                tv_site.setText("经过:4号线,6号线");
                break;
        }
    }
}

  

 

 

 

posted on 2023-03-30 21:35  wardream  阅读(28)  评论(0)    收藏  举报