数据库的第三方框架有很多,在这里我采用郭霖大神推荐的LitePal框架,实现一个简单的登录注册的Demo。首先在这里我们把实现的逻辑理顺一下,我们在注册的时候连接数据库,并将注册的信息存放到数据库里面,然后登陆的时候进行查询判断,就可以实现简单的登录了。在这里不熟悉LitePal框架的可以在下方给我留言。
首先我们思考一下登录注册需要实现那些代码,首先应该是登录时的登录界面,注册时的界面,以及登陆成功后,看到的界面,总共三个界面,所以在这里我们需要的JAVA代码,其中Login是我们登录时候的界面,Logutil是我们自定义的输出日志,MainActivity是我们登陆成功后的界面,MyApplication是我们自定义的Application,这个是要在manifest里面进行注册的,person是我们定义的存入数据库的时候的数据属性,Registe是我们注册的时候的界面,说了这么多了,我们来看看源代码了。
这个是Login代码块
package com.example.cshaoshao.litepalbase;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Toast;
import org.litepal.crud.DataSupport;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* Created by cshaoshao on 2017/6/12.
*/
public class Login extends AppCompatActivity implements View.OnClickListener {
private EditText et_user,et_password;
private ImageButton login,registe;
private List<Person>list=new ArrayList<>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.loginview);
login= (ImageButton) findViewById(R.id.denglu);
registe= (ImageButton) findViewById(R.id.zhuce);
et_user= (EditText) findViewById(R.id.zhanghao);
et_password= (EditText) findViewById(R.id.mima);
login.setOnClickListener(this);
registe.setOnClickListener(this);
}
@Override
public void onClick(View v)
{
String user=et_user.getText().toString();
String password=et_password.getText().toString();
switch (v.getId())
{
case R.id.zhuce:
Intent intent=new Intent(Login.this,Registe.class);
startActivity(intent);
break;
case R.id.denglu:
list= DataSupport.findAll(Person.class);
Iterator<Person>it=list.iterator();
for (Person p:list)
{
if(p.getName().equals(user)&&p.getPassword().equals(password))
{
Intent intent1=new Intent(Login.this,MainActivity.class);
startActivity(intent1);
Toast.makeText(this,"登录成功",Toast.LENGTH_SHORT).show();
break;
}
else
{
Toast.makeText(this,"登录失败",Toast.LENGTH_SHORT).show();
}
}
break;
default:
break;
}
}
}
person代码块:
package com.example.cshaoshao.litepalbase;
import org.litepal.crud.DataSupport;
/**
* Created by cshaoshao on 2017/6/13.
*/
public class Person extends DataSupport
{
private int id;
private String name;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
Regist代码块:
package com.example.cshaoshao.litepalbase;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import org.litepal.tablemanager.Connector;
/**
* Created by cshaoshao on 2017/6/13.
*/
public class Registe extends AppCompatActivity
{
private EditText account,password;
private Button save;
private String username,userpassword;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.registeview);
account= (EditText) findViewById(R.id.account);
password= (EditText) findViewById(R.id.password);
save= (Button) findViewById(R.id.save);
Connector.getDatabase();
save.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Person person=new Person();
person.setName(account.getText().toString());
person.setPassword(password.getText().toString());
person.save();
Toast.makeText(Registe.this,"注册成功",Toast.LENGTH_SHORT).show();
Intent intent=new Intent(Registe.this,Login.class);
startActivity(intent);
}
});
}
}
MyApplication代码块:
package com.example.cshaoshao.litepalbase; import android.app.Application; import org.litepal.LitePal; /** * Created by cshaoshao on 2017/6/12. */ public class MyApplication extends Application { @Override