登录注册

//依赖

compile 'com.android.support:appcompat-v7:26.+'compile 'com.android.support.constraint:constraint-layout:1.0.2'compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'testCompile 'junit:junit:4.12'compile files('libs/open_sdk_r5886_lite.jar')compile fileTree(include: ['*.jar'], dir: 'libs')compile 'com.jcodecraeer:xrecyclerview:1.2.0'compile 'com.github.bumptech.glide:glide:3.7.0'compile 'com.google.code.gson:gson:2.8.2'compile 'com.squareup.okhttp3:okhttp:3.9.0'

//权限

<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

登录注册

主布局

<?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:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.bwei.weektext2lx.MainActivity"> <Button android:id="@+id/login" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="登录" android:layout_marginStart="47dp" android:layout_marginLeft="47dp" android:layout_marginBottom="35dp" android:layout_alignParentStart="true" android:layout_alignParentLeft="true" android:layout_alignParentBottom="true"/> <Button android:id="@+id/regis" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="注册" android:layout_alignParentEnd="true" android:layout_alignParentRight="true" android:layout_below="@+id/framelayout" android:layout_marginRight="53dp" android:layout_marginEnd="53dp"/> <FrameLayout android:id="@+id/framelayout" android:layout_height="match_parent" android:layout_width="match_parent" android:layout_above="@id/login"/></RelativeLayout>

登录布局

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <EditText android:id="@+id/ed_user" android:layout_height="wrap_content" android:layout_width="match_parent" android:layout_marginTop="28dp" android:layout_alignParentStart="true" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:hint="请输入用户名"/> <EditText android:id="@+id/ed_pass" android:layout_height="wrap_content" android:layout_width="match_parent" android:layout_marginTop="62dp" android:layout_alignParentStart="true" android:layout_alignParentLeft="true" android:hint="请输入密码" android:layout_below="@+id/ed_user"/> <Button android:id="@+id/btn_login" android:layout_height="wrap_content" android:layout_width="match_parent" android:layout_marginTop="172dp" android:layout_alignParentStart="true" android:layout_alignParentLeft="true" android:layout_below="@+id/ed_user" android:text="登录"/></RelativeLayout>

注册布局

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <EditText android:id="@+id/ed_user" android:layout_height="wrap_content" android:layout_width="match_parent" android:layout_marginTop="28dp" android:layout_alignParentStart="true" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:hint="请输入用户名"/> <EditText android:id="@+id/ed_pass" android:layout_height="wrap_content" android:layout_width="match_parent" android:layout_marginTop="62dp" android:layout_alignParentStart="true" android:layout_alignParentLeft="true" android:hint="请输入密码" android:layout_below="@+id/ed_user"/> <Button android:id="@+id/btn_regis" android:layout_height="wrap_content" android:layout_width="match_parent" android:layout_marginTop="172dp" android:layout_alignParentStart="true" android:layout_alignParentLeft="true" android:layout_below="@+id/ed_user" android:text="注册"/></RelativeLayout>

创建数据库

import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;/** * Created by HQ on 2017/11/11. *///创建数据库public class SQList extends SQLiteOpenHelper { public SQList(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { sqLiteDatabase.execSQL("create table user(name text,pass text)"); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { }}

添加,查询方法

import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import com.bwei.weektext2lx.sq.SQList;/** * Created by HQ on 2017/11/11. */public class Dao { private final SQList mysqlite; public Dao(Context con){ mysqlite = new SQList(con, "Text", null, 1); } //数据库查询 public boolean select(String name,String pass){ SQLiteDatabase db = mysqlite.getWritableDatabase(); Cursor cursor = db.rawQuery("select * from user where name= ? and pass = ?", new String[]{name, pass}); if(cursor.moveToNext()){ return true; } return false; } //数据库添加 public void insert(String name,String pass){ SQLiteDatabase db = mysqlite.getWritableDatabase(); db.execSQL("insert into user values(?,?)",new Object[]{name,pass}); db.close(); }}
 

主Activity

import android.graphics.Color;import android.support.v4.app.FragmentManager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.FrameLayout;import com.bwei.weektext2lx.fragment.LoginFragment;import com.bwei.weektext2lx.fragment.RegisFragment;public class MainActivity extends AppCompatActivity implements View.OnClickListener { private FrameLayout framelayout; private Button login; private Button regis; private LoginFragment loginFragment; private RegisFragment regisFragment; private FragmentManager sfm; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); intiFragment(); } private void intiFragment() { loginFragment = new LoginFragment(); regisFragment = new RegisFragment(); sfm = getSupportFragmentManager(); sfm.beginTransaction().add(R.id.framelayout,loginFragment).commit(); sfm.beginTransaction().add(R.id.framelayout, regisFragment).commit(); sfm.beginTransaction().hide(regisFragment).commit(); } private void initView() { framelayout = (FrameLayout) findViewById(R.id.framelayout); login = (Button) findViewById(R.id.login); regis = (Button) findViewById(R.id.regis); login.setOnClickListener(this); regis.setOnClickListener(this); login.setTextColor(Color.RED); } @Override public void onClick(View view) { switch(view.getId()){ case R.id.login: login.setTextColor(Color.RED); regis.setTextColor(Color.BLACK); sfm.beginTransaction().show(loginFragment).commit(); sfm.beginTransaction().hide(regisFragment).commit(); break; case R.id.regis: login.setTextColor(Color.BLACK); regis.setTextColor(Color.RED); sfm.beginTransaction().hide(loginFragment).commit(); sfm.beginTransaction().show(regisFragment).commit(); break; } }}

登录fragment

import android.content.Intent;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;import com.bwei.weektext2lx.MyActivity;import com.bwei.weektext2lx.R;import com.bwei.weektext2lx.inter.Ivlogin;import com.bwei.weektext2lx.presenter.Presenter;/** * Created by HQ on 2017/11/11. */public class LoginFragment extends Fragment implements Ivlogin{ private View view; private EditText ed_user; private EditText ed_pass; private Button btn_login; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.login_fragment, container, false); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); ed_user = (EditText)view.findViewById(R.id.ed_user); ed_pass = (EditText)view.findViewById(R.id.ed_pass); btn_login = (Button)view.findViewById(R.id.btn_login); btn_login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String user = ed_user.getText().toString().trim(); String pass = ed_pass.getText().toString().trim(); Presenter presenter = new Presenter(LoginFragment.this ,getActivity()); boolean b = presenter.checkData(user, pass); if(b){ presenter.select(user,pass); } } }); } @Override public void onSuccess() { startActivity(new Intent(getActivity(), MyActivity.class)); } @Override public void onFiled() { Toast.makeText(getActivity(),"用户名或密码输入有误", Toast.LENGTH_SHORT).show(); }}

注册fragment

import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;import com.bwei.weektext2lx.R;import com.bwei.weektext2lx.inter.Ivregis;import com.bwei.weektext2lx.presenter.Presenter2;/** * Created by HQ on 2017/11/11. */public class RegisFragment extends Fragment implements Ivregis { private View view; private EditText ed_user; private EditText ed_pass; private Button btn_regis; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.regis_fragment, container, false); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); ed_user = (EditText)view.findViewById(R.id.ed_user); ed_pass = (EditText)view.findViewById(R.id.ed_pass); btn_regis = (Button)view.findViewById(R.id.btn_regis); btn_regis.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String user = ed_user.getText().toString().trim(); String pass = ed_pass.getText().toString().trim(); Presenter2 presenter = new Presenter2(RegisFragment.this ,getActivity()); boolean b = presenter.checkData(user, pass);//验证输入是否合法 if(b){ boolean b1 = presenter.select2(user,pass);//验证用户是否已注册 if(!b1) { presenter.insert(user, pass); } } } }); } @Override public void onSuccess() { Toast.makeText(getActivity(), "注册成功", Toast.LENGTH_SHORT).show(); } @Override public void onFiled() { Toast.makeText(getActivity(),"用户已注册,请进行登录",Toast.LENGTH_SHORT).show(); }}

Presenter 包

import android.content.Context;import android.text.TextUtils;import android.widget.Toast;import com.bwei.weektext2lx.Dao.Dao;import com.bwei.weektext2lx.inter.Ivlogin;/** * Created by HQ on 2017/11/11. */public class Presenter { private Ivlogin login; private Context context; public Presenter(){ } public Presenter(Ivlogin login,Context context){ this.login=login; this.context=context; } //一个方法 public boolean checkData(String user,String pass){ if(TextUtils.isEmpty(user)||TextUtils.isEmpty(pass)){ Toast.makeText(context,"用户名或密码不能为空", Toast.LENGTH_SHORT).show(); return false; } if(pass.length()<6){ Toast.makeText(context,"密码长度需要大于6位",Toast.LENGTH_SHORT).show(); return false; } return true; } public void select(String user,String pass){ Dao dao = new Dao(context); boolean select = dao.select(user, pass); if(select){ login.onSuccess(); return; }else{ login.onFiled(); return; } }}

Presenter 包 Presenter2

import android.content.Context;import android.text.TextUtils;import android.widget.Toast;import com.bwei.weektext2lx.Dao.Dao;import com.bwei.weektext2lx.inter.Ivregis;/** * Created by HQ on 2017/11/11. */public class Presenter2 { private Ivregis ivregis; private Context context; public Presenter2() { } public Presenter2(Ivregis ivregis, Context context) { this.ivregis = ivregis; this.context = context; } public boolean checkData(String user, String pass) { if (TextUtils.isEmpty(user) || TextUtils.isEmpty(pass)) { Toast.makeText(context, "用户名或密码不能为空", Toast.LENGTH_SHORT).show(); return false; } if (pass.length() < 6) { Toast.makeText(context, "密码长度需要大于6位", Toast.LENGTH_SHORT).show(); return false; } return true; } public boolean select2(String user, String pass) { Dao dao = new Dao(context); boolean select = dao.select(user, pass); if (select) {//有 ivregis.onFiled(); return true; } return false; } public void insert(String user,String pass){ Dao dao = new Dao(context); dao.insert(user,pass); ivregis.onSuccess(); }}

登录接口

public interface Ivlogin { void onSuccess(); void onFiled();}

注册接口

public interface Ivregis { void onSuccess(); void onFiled();}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值