Android注册登录页面

Android注册登录页面

  • 需求
  • 分析
  • 项目目录
    • .java
      • domain
        • JsonBean.java
        • UserInfo.java
      • utils
        • GetJsonDataUtil.java
      • Login.java
      • MainActivity.java
      • Result.java
      • Welcome.java
    • .xml
      • activity_login.xml
      • activity_main.xml
      • activity_result.xml
      • activity_result.xml
    • AndroidManifest.xml
  • 页面效果
    • 注册页面
    • 注册成功页面
    • 登录页面
    • 登录成功页面
  • 点击可自行下载

需求

主题:网抑云
用户注册
(账号 密码 性别 爱好…)
(注册完成跳转到注册成功页面)
注册成功页面
(显示用户注册的详细信息)
(可以跳转到登录页面)
登录页面
(使用用户注册时的账号密码登录)
(进行判断)
登录成功页面
(欢迎XXX(用户注册时的昵称)先生/女士

分析

不能使用回车多行输入
账号(不可为空)
密码(不可为空)(隐藏的)
确认密码(比对)
昵称(不可为空)
性别(单选)
爱好(多选)
简介
简介可以为空,其他全部非空
inputType属性实现限制输入类型
点击注册 如果有空(吐司提示XXX不可为空) 从上到下提示
注册完毕之后:
跳转到注册成功页面

项目目录

在这里插入图片描述

.java

domain

JsonBean.java

package top.gaojc.app.domain;import com.contrarywind.interfaces.IPickerViewData;import java.util.List;public class JsonBean implements IPickerViewData {private String name;private List<CityBean> city;public String getName() {return name;}public void setName(String name) {this.name = name;}public List<CityBean> getCityList() {return city;}public void setCityList(List<CityBean> city) {this.city = city;}// 实现 IPickerViewData 接口,// 这个用来显示在PickerView上面的字符串,// PickerView会通过IPickerViewData获取getPickerViewText方法显示出来。@Overridepublic String getPickerViewText() {return this.name;}public static class CityBean {private String name;private List<String> area;public String getName() {return name;}public void setName(String name) {this.name = name;}public List<String> getArea() {return area;}public void setArea(List<String> area) {this.area = area;}}}

UserInfo.java

package top.gaojc.app.domain;public class UserInfo {// 账号public static String zhanghao;// 密码public static String mima;// 确认密码public static String queren;// 昵称public static String nicheng;// 性别public static String xingbie;// 爱好public static String aihao;// 简介public static String jianjie;public String getZhanghao() {return zhanghao;}public void setZhanghao(String zhanghao) {this.zhanghao = zhanghao;}public String getMima() {return mima;}public void setMima(String mima) {this.mima = mima;}public String getQueren() {return queren;}public void setQueren(String queren) {this.queren = queren;}public String getNicheng() {return nicheng;}public void setNicheng(String nicheng) {this.nicheng = nicheng;}public String getXingbie() {return xingbie;}public void setXingbie(String xingbie) {this.xingbie = xingbie;}public String getAihao() {return aihao;}public void setAihao(String aihao) {this.aihao = aihao;}public String getJianjie() {return jianjie;}public void setJianjie(String jianjie) {this.jianjie = jianjie;}}

utils

GetJsonDataUtil.java

package top.gaojc.app.utils;import android.content.Context;
import android.content.res.AssetManager;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;public class GetJsonDataUtil {public String getJson(Context context, String fileName) {StringBuilder stringBuilder = new StringBuilder();try {AssetManager assetManager = context.getAssets();BufferedReader bf = new BufferedReader(new InputStreamReader(assetManager.open(fileName)));String line;while ((line = bf.readLine()) != null) {stringBuilder.append(line);}} catch (IOException e) {e.printStackTrace();}return stringBuilder.toString();}}

Login.java

package top.gaojc.app;import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;import androidx.appcompat.app.AppCompatActivity;import top.gaojc.app.domain.UserInfo;public class Login extends AppCompatActivity {// 初始化Button login;EditText edt_account;EditText edt_password;// 用户注册时的账号密码String zhanghao;String mima;// 用户登录时的账号密码String account;String password;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_login);// 绑定login = findViewById(R.id.login);edt_account = findViewById(R.id.account);edt_password = findViewById(R.id.password);// 获取用户注册时的账号和密码UserInfo userInfo = new UserInfo();zhanghao = userInfo.getZhanghao();mima = userInfo.getMima();// 监听点击事件login.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {// 获取用户登录时输入的账号密码account = edt_account.getText().toString();password = edt_password.getText().toString();// 判断用户注册时的账号密码和登录输入的账号密码是否一致if (zhanghao.equals(account) == true && mima.equals(password) == true){// 登录成功 跳转登录成功页面Intent intent = new Intent(Login.this,Welcome.class);startActivity(intent);}else {// 提示用户账号或密码错误Toast.makeText(Login.this,"账号或密码错误",Toast.LENGTH_SHORT).show();}}});}}

MainActivity.java

package top.gaojc.app;import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.TextView;
import android.widget.Toast;import androidx.appcompat.app.AppCompatActivity;import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.google.gson.Gson;import org.json.JSONArray;import java.util.ArrayList;import top.gaojc.app.domain.JsonBean;
import top.gaojc.app.domain.UserInfo;
import top.gaojc.app.utils.GetJsonDataUtil;public class MainActivity extends AppCompatActivity {// 初始化// 省市区联动private TextView mTxt;private ArrayList<JsonBean> options1Items = new ArrayList<>(); //省private ArrayList<ArrayList<String>> options2Items = new ArrayList<>();//市private ArrayList<ArrayList<ArrayList<String>>> options3Items = new ArrayList<>();//区// 账号EditText account;// 密码EditText password;// 确认密码EditText confirmPassword;// 昵称EditText username;// 性别 男RadioButton rb_man;// 性别 女RadioButton rb_woman;// 爱好 吃CheckBox eat;// 爱好 喝CheckBox drink;// 爱好 玩CheckBox play;// 爱好 乐CheckBox happy;// 简介EditText presentation;// 注册按钮Button register;// 结果// 账号String zhanghao;// 输入框 密码String mima;// 输入框 确认密码String queren;// 输入框 昵称String nicheng;// 给数字赋值 判断男女int gender;// 按钮 性别String xingbie;// 爱好String aihao;// 输入框 简介String jianjie;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 省市区联动方法initView();initData();// 绑定// 账号account = findViewById(R.id.edt_account);// 密码password = findViewById(R.id.edt_password);// 确认密码confirmPassword = findViewById(R.id.edt_confirmPassword);// 昵称username = findViewById(R.id.edt_username);// 性别rb_man = findViewById(R.id.rb_man);rb_woman = findViewById(R.id.rb_woman);// 爱好eat =  findViewById(R.id.cb_eat);drink = findViewById(R.id.cb_drink);play = findViewById(R.id.cb_play);happy = findViewById(R.id.cb_happy);// 简介presentation = findViewById(R.id.edt_presentation);// 注册按钮register = findViewById(R.id.btn_register);// 监听点击事件register.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {// 获取账号zhanghao = account.getText().toString();// 获取密码mima = password.getText().toString();// 获取确认密码queren = confirmPassword.getText().toString();// 获取昵称nicheng = username.getText().toString();// 获取性别rb_woman.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {gender = 1;}});if (gender == 1){xingbie = "女";}else {xingbie = "男";}// 获取爱好StringBuilder stringBuilder = new StringBuilder();if (eat.isChecked()){stringBuilder.append("吃、");}if (drink.isChecked()){stringBuilder.append("喝、");}if (play.isChecked()){stringBuilder.append("玩、");}if (happy.isChecked()){stringBuilder.append("乐");}// 获取字符串最后一个字符String str = stringBuilder.charAt(stringBuilder.length() - 1) + "";// 如果最后一个符号是、 则剪切掉if (str.equals("、")){aihao = stringBuilder.substring(0,stringBuilder.length() - 1);}else {aihao = stringBuilder.toString();}// 获取简介jianjie = presentation.getText().toString();// 账号密码昵称校验if (zhanghao.equals("") == false && zhanghao.length() != 0 &&mima.equals("") == false && mima.length() != 0 && mima.equals(queren) == true &&nicheng.equals("") == false && nicheng.length() != 0){// 数据存储UserInfo userInfo = new UserInfo();userInfo.setZhanghao(zhanghao);userInfo.setMima(mima);userInfo.setQueren(queren);userInfo.setNicheng(nicheng);userInfo.setXingbie(xingbie);userInfo.setAihao(aihao);userInfo.setJianjie(jianjie);// 跳转Intent intent = new Intent(MainActivity.this, Result.class);startActivity(intent);} else if (zhanghao.equals("") == true || zhanghao.length() == 0){Toast.makeText(MainActivity.this,"账号不允许为空!",Toast.LENGTH_SHORT).show();}else if (mima.equals("") == true || mima.length() == 0){Toast.makeText(MainActivity.this,"密码不允许为空!",Toast.LENGTH_SHORT).show();} else if (mima.equals(queren) == false){Toast.makeText(MainActivity.this,"两次密码不一致!",Toast.LENGTH_SHORT).show();}else if (nicheng.equals("") == true || nicheng.length() == 0){Toast.makeText(MainActivity.this,"昵称不允许为空!",Toast.LENGTH_SHORT).show();}}});}private void initData() {/*** 注意:assets 目录下的Json文件仅供参考,实际使用可自行替换文件* 关键逻辑在于循环体* */String JsonData = new GetJsonDataUtil().getJson(this, "province.json");//获取assets目录下的json文件数据ArrayList<JsonBean> jsonBean = parseData(JsonData);//用Gson 转成实体/*** 添加省份数据* 注意:如果是添加的JavaBean实体,则实体类需要实现 IPickerViewData 接口,* PickerView会通过getPickerViewText方法获取字符串显示出来。*/options1Items = jsonBean;for (int i = 0; i < jsonBean.size(); i++) {//遍历省份ArrayList<String> CityList = new ArrayList<>();//该省的城市列表(第二级)ArrayList<ArrayList<String>> Province_AreaList = new ArrayList<>();//该省的所有地区列表(第三级)for (int c = 0; c < jsonBean.get(i).getCityList().size(); c++) {//遍历该省份的所有城市String CityName = jsonBean.get(i).getCityList().get(c).getName();CityList.add(CityName);//添加城市ArrayList<String> City_AreaList = new ArrayList<>();//该城市的所有地区列表//如果无地区数据,建议添加空字符串,防止数据为null 导致三个选项长度不匹配造成崩溃if (jsonBean.get(i).getCityList().get(c).getArea() == null|| jsonBean.get(i).getCityList().get(c).getArea().size() == 0) {City_AreaList.add("");} else {City_AreaList.addAll(jsonBean.get(i).getCityList().get(c).getArea());}Province_AreaList.add(City_AreaList);//添加该省所有地区数据}//添加城市数据options2Items.add(CityList);//添加地区数据options3Items.add(Province_AreaList);}}private void initView() {mTxt = (TextView) findViewById(R.id.txt);mTxt.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {showPickerView();}});}private void showPickerView() {OptionsPickerView pvOptions = new OptionsPickerBuilder(this, new OnOptionsSelectListener() {@Overridepublic void onOptionsSelect(int options1, int options2, int options3, View v) {//返回的分别是三个级别的选中位置mTxt.setText(options1Items.get(options1).getPickerViewText() + "  "+ options2Items.get(options1).get(options2) + "  "+ options3Items.get(options1).get(options2).get(options3));}}).setTitleText("城市选择").setTitleBgColor(Color.WHITE)//设置标题的背景颜色.setDividerColor(Color.BLACK)//设置分割线的颜色.setTextColorCenter(Color.BLACK) //设置选中项文字颜色.setContentTextSize(20).build();pvOptions.setPicker(options1Items, options2Items, options3Items);//三级选择器pvOptions.show();}public ArrayList<JsonBean> parseData(String result) {//Gson 解析ArrayList<JsonBean> detail = new ArrayList<>();try {JSONArray data = new JSONArray(result);// 通过构造函数来获取Gson gson = new Gson();for (int i = 0; i < data.length(); i++) {JsonBean entity = gson.fromJson(data.optJSONObject(i).toString(), JsonBean.class);detail.add(entity);}} catch (Exception e) {e.printStackTrace();}return detail;}
}

Result.java

package top.gaojc.app;import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;import androidx.appcompat.app.AppCompatActivity;import top.gaojc.app.domain.UserInfo;public class Result extends AppCompatActivity {// 初始化// 返回值TextView result;// 登录按钮Button login;// 账号String zhanghao;// 密码String mima;// 昵称String nicheng;// 性别String xingbie;// 爱好String aihao;// 简介String jianjie;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_result);// 绑定result = findViewById(R.id.tv_result);login = findViewById(R.id.btn_login);// 用户信息对象UserInfo userInfo = new UserInfo();// 获取用户信息zhanghao = userInfo.getZhanghao();mima = userInfo.getMima();nicheng = userInfo.getNicheng();xingbie = userInfo.getXingbie();aihao = userInfo.getAihao();jianjie = userInfo.getJianjie();// 设置显示的数据result.setText("账号:" + zhanghao + "\n密码:" + mima + "\n昵称:" + nicheng + "\n性别:" + xingbie + "\n爱好:" + aihao + "\n简介:" + jianjie);// 监听事件login.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent intent = new Intent(Result.this, Login.class);startActivity(intent);}});}
}

Welcome.java

package top.gaojc.app;import android.os.Bundle;
import android.widget.TextView;import androidx.appcompat.app.AppCompatActivity;import top.gaojc.app.domain.UserInfo;public class Welcome extends AppCompatActivity {// 初始化TextView register;String nicheng;String xingbie;// 称谓 先生 or 女士String appellation;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_welcome);// 绑定register = findViewById(R.id.tv_register);// 获取用户的昵称和性别UserInfo userInfo = new UserInfo();nicheng = userInfo.getNicheng();xingbie = userInfo.getXingbie();// 判断男女 昵称后面跟称谓if (xingbie.equals("男")){appellation = "先生";}else {appellation = "女士";}// 输出内容的拼接String text = "欢迎" + nicheng + appellation + "!";// 打印register.setText(text);}
}

.xml

activity_login.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".Login"android:orientation="vertical"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="用户登录"android:layout_gravity="center"android:textSize="25sp"/><TextViewandroid:id="@+id/txt"android:layout_width="match_parent"android:layout_height="48dp"android:gravity="center"android:layout_centerInParent="true" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="账号" /><EditTextandroid:id="@+id/account"android:layout_width="match_parent"android:layout_height="wrap_content"android:singleLine="true"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="密码" /><EditTextandroid:id="@+id/password"android:layout_width="match_parent"android:layout_height="wrap_content"android:inputType="textPassword"/></LinearLayout><Buttonandroid:id="@+id/login"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:text="登录"/>
</LinearLayout>

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:orientation="vertical"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="用户注册"android:layout_gravity="center"android:textSize="25sp"/><TextViewandroid:id="@+id/txt"android:layout_width="match_parent"android:layout_height="48dp"android:gravity="center"android:layout_centerInParent="true" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="账号" /><EditTextandroid:id="@+id/edt_account"android:layout_width="match_parent"android:layout_height="wrap_content"android:singleLine="true"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="密码" /><EditTextandroid:id="@+id/edt_password"android:layout_width="match_parent"android:layout_height="wrap_content"android:inputType="textPassword"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="确认密码" /><EditTextandroid:id="@+id/edt_confirmPassword"android:layout_width="match_parent"android:layout_height="wrap_content"android:inputType="textPassword"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="昵称" /><EditTextandroid:id="@+id/edt_username"android:layout_width="match_parent"android:layout_height="wrap_content"android:singleLine="true"/></LinearLayout><RadioGroupandroid:id="@+id/rg_gender"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="性别"/><RadioButtonandroid:id="@+id/rb_man"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text=""android:checked="true"/><RadioButtonandroid:id="@+id/rb_woman"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text=""/></RadioGroup><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="爱好"/><CheckBoxandroid:id="@+id/cb_eat"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text=""/><CheckBoxandroid:id="@+id/cb_drink"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="" /><CheckBoxandroid:id="@+id/cb_play"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text=""/><CheckBoxandroid:id="@+id/cb_happy"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text=""/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="简介" /><EditTextandroid:id="@+id/edt_presentation"android:layout_width="match_parent"android:layout_height="wrap_content"android:singleLine="true"/></LinearLayout><Buttonandroid:id="@+id/btn_register"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="注册"android:layout_gravity="center"android:textSize="20sp"android:layout_marginTop="35dp"/></LinearLayout>

activity_result.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".Result"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="注册成功!"android:layout_above="@id/tv_result"android:layout_centerHorizontal="true"android:textColor="#00ff99"android:textSize="30sp"/><!-- 返回内容--><TextViewandroid:id="@+id/tv_result"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"/><Buttonandroid:id="@+id/btn_login"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/tv_result"android:layout_centerHorizontal="true"android:text="去登录"/></RelativeLayout>

activity_result.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".Welcome"><TextViewandroid:id="@+id/tv_register"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:textSize="30sp"/></RelativeLayout>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="top.gaojc.app"><applicationandroid:allowBackup="true"android:icon="@drawable/wyy"android:label="@string/app_name"android:roundIcon="@drawable/wyy"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".Login"/><activity android:name=".Result" /><activity android:name=".Welcome" /><activity android:name=".domain.UserInfo"/><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>

页面效果

注册页面

在这里插入图片描述

注册成功页面

在这里插入图片描述

登录页面

在这里插入图片描述

登录成功页面

在这里插入图片描述

点击可自行下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/41997.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android之登录注册——简易版

今天&#xff0c;我要分享给大家的是Android中常见的一个的登录注册的案例&#xff0c;我这里写的是简易版&#xff0c;如果大家有更精彩的拓展&#xff0c;可以自行发挥哦&#xff01; 运行过程相信大家都已经心知肚明了&#xff0c;所以我在这里就直接发布代码了&#xff0c…

Android用户登录注册界面

用户登录注册界面开发及用户信息管理案例详解 刚开始接触Android编程&#xff0c;这算是我写的第一个简单工程&#xff0c;主要功能有&#xff1a;用户登录、注册、注销、修改密码、记住密码共5个基本操作&#xff0c;其内容涉及到以下几点&#xff1a; 1&#xff1a;Button&am…

Android登录界面的注册功能实现

注册一个登录界面在控制台将输入的信息文本选框展示出来 xml界面设计&#xff08;前面已发&#xff09; <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:ap…

安卓注册登录界面示例

AndroidManifest.xml <?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android"http://schemas.android.com/apk/res/android"package"online.geekgalaxy.layoutlearn"><applicationandroid:allowBackup"…

前2周还很火的ChatGPT,怎么突然就哑火了?

ChatGPT从去年才展露头角&#xff0c;但微软和谷歌的AI大战让ChatGPT在今年2月初突然就火出圈&#xff0c;国内不少大公司也紧急官宣“我们也有这项技术” ▶ 腾讯&#xff1a;在相关方向上已有布局&#xff0c;专项研究也在有序推进&#xff1b; ▶ 华为&#xff1a;在与Chat…

零代码量化投资:用ChatGPT通过tushare获取上市公司信息

Tushare是一个免费开源的金融数据集&#xff0c;包含股票、基金、期货、债券、外汇、行业大数据&#xff0c;同时包括了数字货币行情等区块链数据的全数据品类。 要使用tushare&#xff0c;首选注册一个账号&#xff0c;注册地址&#xff1a;https://tushare.pro/register?reg…

Qt 可视化Ui设计

QMainWindow 是主窗口类&#xff0c;主窗口类具有主菜单栏、工具栏和状态栏&#xff0c;类似于一般的应用程序的主窗口&#xff1b; QWidget是所有具有可视界面类的基类&#xff0c;选择QWidget创建的界面对各种界面组件都可以支持&#xff1b; QDialog是对话框类&#xff0c;可…

这么可爱的彩虹屁老婆,真的不想“娶”一个放桌面上吗?

&#x1f4a7;这么可爱的 彩 虹 屁 老 婆 \color{#FF1493}{彩虹屁老婆} 彩虹屁老婆&#xff0c;真的不想“娶”一个放桌面上吗&#xff1f;&#x1f4a7; &#x1f337; 仰望天空&#xff0c;妳我亦是行人.✨ &#x1f984; 个人主页——微风撞见云的博客&#x1f39…

Python中Oracle的连接、增删改查

1、下载格式为whl的cx_Oracle文件 文件名&#xff1a;cx_Oracle‑7.3.0‑cp37‑cp37m‑win_amd64.whl 注意对应cp版本&#xff08;python版本&#xff09; 下载地址&#xff1a;https://www.lfd.uci.edu/~gohlke/pythonlibs/#cx_oracle 下载到 D:\software 安装步骤&#…

美因基因冲刺港交所:黄金赛道的“双冠王”

2月18日&#xff0c;中国最大、全球前三的消费级基因检测平台美因基因向港交所递交了IPO申请&#xff0c;拟赴港上市&#xff0c;中信建投国际担任独家保荐人。 据美因基因招股说明书显示&#xff0c;此次IPO募集资金用于&#xff1a;&#xff08;1&#xff09;消费级基因检测及…

申宝优配-强者恒强还将继续

周二的行情与预期的保持一致&#xff0c;在日线的修整时间继续延续&#xff0c;同时&#xff0c;连续几天的休整以后&#xff0c;短线指标已经到达了相对的超跌低位&#xff0c;指数也到达了下方强支撑的3586点的边缘.。早盘指数小幅度低开以后快速拉起如期的开始进入反抽行情&…

乡村振兴开发合作联盟成立新闻发布会暨揭牌仪式成功举办

2022年3月18日&#xff0c;乡村振兴开发合作联盟成立新闻发布会暨揭牌仪式在纵横华媒国际总部成功举办。联盟主要负责人、纵横华媒国际董事长马康华&#xff0c;纵横华媒国际副总裁徐凡十、马卢健等领导出席会议并讲话。 本场发布会因疫情防控需要&#xff0c;采取线下线上相结…

申宝公司-市场两级分化谨慎操作

周一A股三大指数集体低开&#xff0c;早盘市场小幅反弹后便开启震荡下挫行情&#xff0c;沪指跌近1%&#xff0c;创业板指跌逾2%&#xff1b;午后A股跌幅继续杀跌&#xff0c;沪指失守3600点&#xff0c;创业板指一度重挫逾3%。沪深两市连续第42个交易日突破万亿规模&#xff1…

2月15日市场游资操作情况以及龙虎榜

2月15日市场知名游资操作以及机构龙虎榜&#xff1a; 1、章盟主 卖出&#xff1a;凯撒旅业 2、赵老哥 买入&#xff1a;天禾股份 卖出&#xff1a;曲江文旅、恒宝股份、泰慕士 3、量化打板 买入&#xff1a;园林股份、全筑股份、诚达药业、杭州园林、康芝药业、瑞鹄模具、浙…

Scrapy框架+Gerapy分布式爬取海外网文章

Scrapy框架Gerapy分布式爬取海外网文章 前言一、Scrapy和Gerapy是什么&#xff1f;1.Scrapy概述2.Scrapy五大基本构成:3.建立爬虫项目整体架构图4.Gerapy概述5.Gerapy用途 二、搭建Scrapy框架1.下载安装Scrapy环境2.建立爬虫项目3.配置Scrapy框架&#xff08;1&#xff09;item…

区块链媒体套餐到底怎么样用

如今无论是哪行哪业&#xff0c;互联网技术永远都是尤为重要的一个专用工具。不论是公司还是其他想要做宣传策划&#xff0c;那就需要通过网络这一媒体去进行&#xff0c;不过随着移动互联网的迅速普及化&#xff0c;区块链媒体也慢慢地进入大家的视野&#xff0c;那样区块链媒…

手把手教你用量化做复盘(一)

股市复盘是交易中的重要组成部分&#xff0c;能够帮助交易者更好地了解股市变化&#xff0c;把握未来趋势。 但有时候复盘工作量较大&#xff0c;往往花费大量的时间精力&#xff0c;为帮助掘金用户更好、更快地完成复盘工作&#xff0c;特此推出系列内容&#xff1a;《手把手教…

商业演出站口这类宣传模式适宜中小型企业吗

不一样类型的公司在宣传过程中适宜应用不一样类型的宣传模式&#xff0c;比如有许多知名企业都会采用商业演出站口这类宣传模式&#xff0c;这种类型的宣传模式适合不适合中小型企业呢&#xff1f;此类类型的宣传模式针对中小型企业来讲不太适合应用。 为何商业演出站口这样的方…

绿虫数字藏品一站式服务的运营平台解决方案

受“元宇宙”概念影响&#xff0c;数字藏品正在世界各国掀起一股热潮。 数据显示&#xff0c;在刚刚过去的“国际博物馆日”&#xff0c;国内外十家博物馆、图书馆推出20款数字藏品&#xff0c;总量达2.5万件&#xff1b;同一天&#xff0c;广东多家博物馆陆续在不同平台上线2…

基金牌照在公司宣传中具有的功效怎么样

能够看见这样的情况&#xff0c;有很多企业在宣传过程中关注与展现自身的实力&#xff0c;那在宣传过程中&#xff0c;将股票基金牌照呈现出来具有的功效是不是非常大呢&#xff1f;这一点需看公司在宣传过程里的宣传目地怎样&#xff0c;依据宣传目的不一样股票基金牌照&#…