权限
<uses-permission android:name="android.permission.INTERNET" />
**
bean
**
User类
public class User {
String msg;
String code;
public User(String msg, String code) {
this.msg = msg;
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
@Override
public String toString() {
return " "+msg + " " + code ;
}
}
UserBean
public class UserBean {
String molide;
String pwd;
public UserBean() {}
public UserBean(String molide, String pwd) {
this.molide = molide;
this.pwd = pwd;
}
public String getMolide() {
return molide;
}
public void setMolide(String molide) {
this.molide = molide;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
@Override
public String toString() {
return "手机号:" + molide+"密码:" + pwd ;
}
}
**
call
**
DataCall
public interface DataCall {
void callback(User data);
}
**
activity
**
MainActivity
public class MainActivity extends AppCompatActivity implements View.OnClickListener, DataCall {
private static final String TAG = "MainActivity+++";
/**
* 请输入手机号....
*/
private EditText edit_molide;
/**
* 请输入密码....
*/
private EditText edit_pwd;
/**
* 登录
*/
private Button btn_login;
LoginPresenter loginPresenter=new LoginPresenter(this);
private Helper helper;
private SQLiteDatabase database;
int i=0;
private String molide;
private String pwd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
helper = new Helper(MainActivity.this);
database = helper.getWritableDatabase();
selectData(molide, pwd);
// Toast.makeText(MainActivity.this,"首次进行登录页面",Toast.LENGTH_SHORT).show();
}
private void initView() {
edit_molide = findViewById(R.id.edit_molide);
edit_pwd = findViewById(R.id.edit_pwd);
btn_login = findViewById(R.id.btn_login);
btn_login.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_login:
molide = edit_molide.getText().toString().trim();
pwd = edit_pwd.getText().toString().trim();
if(molide.isEmpty()|| pwd.isEmpty()){
Toast.makeText(MainActivity.this,"请输入手机号和密码",Toast.LENGTH_SHORT).show();
return;
}else{
loginPresenter.login(molide, pwd);
}
break;
}
}
private void selectData(String molide, String pwd) {
Cursor cursor = database.query("mvp", null, null, null, null, null, null);
if(cursor.moveToNext()){
Toast.makeText(getBaseContext(),"成功了!!",Toast.LENGTH_SHORT).show();
Intent intent=new Intent(MainActivity.this,ScendActivity.class);
startActivity(intent);
finish();
}
}
@Override
public void callback(User data) {
ContentValues values=new ContentValues();
values.put("molide",molide);
values.put("pwd",pwd);
long insert = database.insert("mvp", null, values);
Log.d(TAG, "点击添加数据的结果"+insert);
Toast.makeText(getBaseContext(),data.getMsg(),Toast.LENGTH_SHORT).show();
Intent intent=new Intent(MainActivity.this,ScendActivity.class);
startActivity(intent);
finish();
}
}
ScendActivity
public class ScendActivity extends AppCompatActivity implements View.OnClickListener {
/**
* 退出
*/
private Button btn_exit;
private Helper helper;
private SQLiteDatabase database;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scend);
initView();
helper = new Helper(ScendActivity.this);
database = helper.getWritableDatabase();
}
private void initView() {
btn_exit = findViewById(R.id.btn_exit);
btn_exit.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_exit:
database.delete("mvp",null,null);
finish();
break;
}
}
}
**
helper
**
Helper
public class Helper extends SQLiteOpenHelper {
private final SQLiteDatabase database;
public Helper(Context context) {
super(context, "Mvp.db", null, 1);
database = getWritableDatabase();
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table mvp(id integer primary key autoincrement,molide varchar(100),pwd varchar(100))");
}
//查询数据
public List<UserBean> chaData(){
List<UserBean> list=new ArrayList<>();
Cursor cursor = database.query("mvp", null, null, null, null, null, null);
while (cursor.moveToLast()){
String molide = cursor.getString(cursor.getColumnIndex("molide"));
String pwd = cursor.getString(cursor.getColumnIndex("pwd"));
UserBean userBean=new UserBean(molide,pwd);
list.add(userBean);
}
return list;
}
//添加数据
public void addData(String molide,String pwd){
ContentValues values=new ContentValues();
values.put("molide",molide);
values.put("pwd",pwd);
database.insert("mvp",null,values);
}
//删除数据
public void delData(){
database.delete("mvp",null,null);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
**
http
**
Utils
public class Utils {
public static String get(String urlData){
try {
URL url = new URL(urlData);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setConnectTimeout(5000);
InputStream inputStream = con.getInputStream();
//转字符串
InputStreamReader input = new InputStreamReader(inputStream);
BufferedReader reader = new BufferedReader(input);
StringBuilder builder = new StringBuilder();
String str="";
while ((str=reader.readLine())!=null){
builder.append(str);
}
reader.close();
return builder.toString();
} catch (Exception e) {
e.printStackTrace();
}
return "未获取到数据";
}
}
**
model
**
LoginModel
public class LoginModel {
private static final String TAG = "LoginModel++++";
public static User login(String mobile,String pwd){
Log.d(TAG, "login: +++"+mobile+pwd);
//13509792162 000000
String loginData = Utils.get("http://www.zhaoapi.cn/user/login?mobile=" + mobile + "" +
"&password=" + pwd);
Gson gson=new Gson();
User user = gson.fromJson(loginData, User.class);
return user;
}
}
**
presenter
**
LoginPresenter
public class LoginPresenter {
private static final String TAG = "LoginPresenter++";
private DataCall call;
public LoginPresenter(DataCall dataCall) {
call= dataCall;
}
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
User user= (User) msg.obj;
call.callback(user);
}
};
public void login(final String molide, final String pwd) {
new Thread(new Runnable() {
@Override
public void run() {
User user = LoginModel.login(molide, pwd);
Log.i(TAG, "run: ______"+user);
Message message = handler.obtainMessage();
message.obj=user;
handler.sendMessage(message);
}
}).start();
}
}