您的位置:首页 > 编程语言

安卓项目之淘忆2.0的代码实现之用户登录功能

2016-07-23 22:28 639 查看
这一模块估计后面也会有稍微的改动,总感觉交互效果不好,而且有点不足,先这样吧,改了以后再改吧。记录一下今天的成果,一天天成长。

下面是Login_activity.xml文件的内容:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:background="#f8f8f8"
android:orientation="vertical"
tools:context="com.elainetaylor.taoyi.ui.activity.LoginActivity">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#fff"
android:orientation="horizontal">

<ImageButton
android:id="@+id/ib_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:src="@mipmap/icon_back" />

<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_marginEnd="50dp"
android:layout_marginRight="50dp"
android:gravity="center"
android:text="登录"
android:textColor="#707070"
android:textSize="18sp" />
</LinearLayout>

<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#dadada" />

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="45dp"
android:gravity="center"
android:orientation="horizontal">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="用户名"
android:textColor="#707070"
android:textSize="16sp" />

<EditText
android:id="@+id/et_username"
android:layout_width="245dp"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginStart="5dp"
android:background="@android:color/transparent"
android:inputType="text"
android:textColor="#5000"
android:textSize="14sp" />
</LinearLayout>

<View
android:layout_width="300dp"
android:layout_height="1dp"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:background="#dadada" />
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="center"
android:orientation="horizontal">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="密码"
android:textColor="#707070"
android:textSize="16sp" />

<EditText
android:id="@+id/et_password"
android:layout_width="260dp"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginStart="5dp"
android:background="@android:color/transparent"
android:inputType="textPassword"
android:textColor="#5000"
android:textSize="14sp" />
</LinearLayout>

<View
android:layout_width="300dp"
android:layout_height="1dp"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:background="#dadada" />
</LinearLayout>

<Button
android:id="@+id/btn_login"
android:layout_width="300dp"
android:layout_height="35dp"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:background="#00b7ee"
android:gravity="center"
android:text="登录"
android:textColor="#fff"
android:textSize="15sp" />

<FrameLayout
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal"
android:padding="5dp">

<Button
android:id="@+id/btn_goRegister"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:background="@android:color/transparent"
android:gravity="start|center"
android:text="快速注册"
android:textColor="#707070"
android:textSize="12sp" />

<Button
android:id="@+id/btn_goForgetPwd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:background="@android:color/transparent"
android:gravity="end|center"
android:text="忘记密码?"
android:textColor="#00b7ee"
android:textSize="12sp" />
</FrameLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="200dp"
android:orientation="vertical">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">

<View
android:layout_width="100dp"
android:layout_height="1dp"
android:layout_gravity="center"
android:background="#dadada" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第三方账号登录"
android:textColor="#77707070" />

<View
android:layout_width="100dp"
android:layout_height="1dp"
android:layout_gravity="center"
android:background="#dadada" />
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="5dp"
android:gravity="center"
android:orientation="horizontal">

<ImageButton
android:id="@+id/ib_sina"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="@android:color/transparent"
android:src="@mipmap/icon_sina" />

<ImageButton
android:id="@+id/ib_wechat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="50dp"
android:layout_marginStart="50dp"
android:background="@android:color/transparent"
android:src="@mipmap/icon_wechat" />
</LinearLayout>

</LinearLayout>
</LinearLayout>

</LinearLayout>

下面是LoginActivity.class文件的内容:

package com.elainetaylor.taoyi.ui.activity;

import android.app.ProgressDialog;
import android.content.Intent;
import android.content.SharedPreferences;
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.ImageButton;
import android.widget.Toast;

import com.avos.avoscloud.AVException;
import com.avos.avoscloud.AVOSCloud;
import com.avos.avoscloud.AVUser;
import com.avos.avoscloud.LogInCallback;
import com.elainetaylor.taoyi.R;

public class LoginActivity extends AppCompatActivity implements View.OnClickListener {
private Button btnLogin, btnGoRegister, btnForget;
private EditText etUsername, etPassword;
private ImageButton ibBack, ibSina, ibWeChat;
private String username, password;
private ProgressDialog dialog;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
AVOSCloud.initialize(this, "K1Ki1nEU9GFmUK6lfVMBMeHE-9Nh9j0Va", "pwYculXduYevPHtGDk6LuI0c");
init();

}

public void init() {
btnLogin = (Button) findViewById(R.id.btn_login);
btnGoRegister = (Button) findViewById(R.id.btn_goRegister);
btnForget = (Button) findViewById(R.id.btn_goForgetPwd);
etUsername = (EditText) findViewById(R.id.et_username);
etPassword = (EditText) findViewById(R.id.et_password);
ibBack = (ImageButton) findViewById(R.id.ib_back);
ibSina = (ImageButton) findViewById(R.id.ib_sina);
ibWeChat = (ImageButton) findViewById(R.id.ib_wechat);
btnLogin.setOnClickListener(this);
btnGoRegister.setOnClickListener(this);
btnForget.setOnClickListener(this);
ibBack.setOnClickListener(this);
ibSina.setOnClickListener(this);
ibWeChat.setOnClickListener(this);
}

@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btn_login:
username = etUsername.getText().toString();
password = etPassword.getText().toString();
if (username.isEmpty()) {
Toast.makeText(LoginActivity.this, "亲,请输入用户名", Toast.LENGTH_SHORT).show();
} else if (password.isEmpty()) {
Toast.makeText(LoginActivity.this, "亲,请输入密码", Toast.LENGTH_SHORT).show();
} else {
showProgressDialog("登录中...");
makeLogin(username, password);
}
break;
case R.id.btn_goRegister:
Intent i = new Intent(LoginActivity.this, RegisterActivity.class);
startActivity(i);
finish();
break;
case R.id.btn_goForgetPwd:
Intent intent = new Intent(LoginActivity.this, ForgetActivity.class);
startActivity(intent);
finish();
break;
case R.id.ib_back:
finish();
break;
case R.id.ib_sina:
Intent iSina = new Intent(LoginActivity.this, SinaActivity.class);
startActivity(iSina);
finish();
break;
case R.id.ib_wechat:
Intent iWechat = new Intent(LoginActivity.this, WechatActivity.class);
startActivity(iWechat);
finish();
break;
}
}

public void writeMes() {
SharedPreferences sharedPreferences = getSharedPreferences("mes", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("username", username);
editor.putString("password", password);
editor.putString("isLogin", "true");
editor.apply();
}

public void makeLogin(String username, String password) {
AVUser.logInInBackground(username, password, new LogInCallback<AVUser>() {
@Override
public void done(AVUser avUser, AVException e) {
if (e == null) {
Toast.makeText(LoginActivity.this, "登陆成功", Toast.LENGTH_SHORT).show();
writeMes();
missProgressDialog();
} else if (e.getCode() == 211) {
missProgressDialog();
Toast.makeText(LoginActivity.this, "该用户还未注册,请先注册哦", Toast.LENGTH_SHORT).show();
} else if (e.getCode() == 210) {
missProgressDialog();
Toast.makeText(LoginActivity.this, "用户名或者密码错误", Toast.LENGTH_SHORT).show();
} else {
missProgressDialog();
Toast.makeText(LoginActivity.this, "亲,网络有点问题哦", Toast.LENGTH_SHORT).show();
}
}
});
}

public void showProgressDialog(String msg) {
if (null == dialog) {
dialog = new ProgressDialog(this);
dialog.setCanceledOnTouchOutside(false);
}
dialog.setMessage(msg);
dialog.show();
}

public void missProgressDialog() {
if (null != dialog) {
dialog.dismiss();
}
}

}

其实去查了一下官方的api,发现其实有很多的返回码,可以看到其实还是挺全面的,要学着看Api文档,争取能够多看懂一些。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  login android