当前位置: 代码迷 >> Android >> android 之实现登录、登记功能
  详细解决方案

android 之实现登录、登记功能

热度:5   发布时间:2016-04-28 02:38:01.0
android 之实现登录、注册功能

第一次使用android 如有不足请指出,感谢之前 ?少聪帮忙

?

整个项目结构如下

使用到了xUtils-2.6.7.jar?fastjson-1.1.36.jar



?

register_activity.xml 配置文件如下

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/LinearLayout1"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:paddingLeft="8dp"    android:paddingRight="8dp"    tools:context=".LoginActivity" >    <LinearLayout        android:layout_width="match_parent"        android:layout_height="48dp"        android:gravity="center_vertical"        android:orientation="horizontal" >        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="账户:" />        <EditText            android:id="@+id/et_user_name"            android:layout_width="match_parent"            android:layout_height="wrap_content" />    </LinearLayout>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="48dp"        android:gravity="center_vertical"        android:orientation="horizontal" >        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="密码:" />        <EditText            android:id="@+id/et_user_pwd"            android:layout_width="match_parent"            android:layout_height="wrap_content" />    </LinearLayout>    <RelativeLayout        android:layout_width="match_parent"        android:layout_height="48dp" >        <Button            android:id="@+id/btn_register"            android:layout_width="80dp"            android:layout_height="wrap_content"            android:layout_alignParentRight="true"            android:text="注册" />           </RelativeLayout></LinearLayout>

?

login_activity.xml?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/LinearLayout1"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:paddingLeft="8dp"    android:paddingRight="8dp"    tools:context=".LoginActivity" >    <LinearLayout        android:layout_width="match_parent"        android:layout_height="48dp"        android:gravity="center_vertical"        android:orientation="horizontal" >        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="账户:" />        <EditText            android:id="@+id/et_user_name"            android:layout_width="match_parent"            android:layout_height="wrap_content" />    </LinearLayout>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="48dp"        android:gravity="center_vertical"        android:orientation="horizontal" >        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="密码:" />        <EditText            android:id="@+id/et_user_pwd"            android:layout_width="match_parent"            android:layout_height="wrap_content" />    </LinearLayout>    <RelativeLayout        android:layout_width="match_parent"        android:layout_height="48dp" >        <Button            android:id="@+id/btn_login"            android:layout_width="80dp"            android:layout_height="wrap_content"            android:layout_alignParentLeft="true"            android:text="登录" />        <Button            android:id="@+id/btn_register"            android:layout_width="80dp"            android:layout_height="wrap_content"            android:layout_alignParentRight="true"            android:text="注册" />    </RelativeLayout></LinearLayout>

?

index_activity.xml 注册成功返回页面

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="账户:" /></LinearLayout>

?返回注册成功页面

package com.android.client.task.index;import com.android.client.R;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;public class IndexActivity extends Activity  implements OnClickListener {		@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.index_activity);	}		@Override	public void onClick(View v) {			}}

?用户登录页面 LoginActivity

package com.android.client.task.user.login;import java.io.UnsupportedEncodingException;import org.apache.http.entity.StringEntity;import org.json.JSONException;import com.alibaba.fastjson.JSONObject;import com.android.client.R;import com.android.client.task.user.reg.RegisterActivity;import com.android.client.task.utils.HttpUtil;import com.android.client.task.utils.TaskApi;import com.lidroid.xutils.http.RequestParams;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;import android.app.Activity;import android.content.Intent;public class LoginActivity extends Activity implements OnClickListener {	private Button btn_login;	private EditText et_user_name;	private EditText et_user_pwd;	private Button btn_register;		@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.login_activity);		btn_login = (Button) findViewById(R.id.btn_login);		btn_login.setOnClickListener(this);		btn_register = (Button) findViewById(R.id.btn_register);		btn_register.setOnClickListener(this);		et_user_name=(EditText) findViewById(R.id.et_user_name);		et_user_pwd=(EditText) findViewById(R.id.et_user_pwd);	}	// 处理用户登录	private void login() throws UnsupportedEncodingException, JSONException {		System.out.println(et_user_name.getText().toString());		RequestParams params = new RequestParams();		params.setHeader("content-type", "application/json");// 头信息		JSONObject jsonObject = new JSONObject();		jsonObject.put("phoneNum", et_user_name.getText().toString());		jsonObject.put("passWord", et_user_pwd.getText().toString());		StringEntity entity = new StringEntity(jsonObject.toString(),"UTF-8");		params.setBodyEntity(entity);		String result = HttpUtil.sendPost(TaskApi.userlogin, params, LoginActivity.this);		org.json.JSONObject js = new org.json.JSONObject(result);				Toast.makeText(this, js.getString("result"),Toast.LENGTH_SHORT).show();			}		@Override	public void onClick(View v) {		switch (v.getId()) {		case R.id.btn_login:			try {				login();			} catch (Exception e) {				e.printStackTrace();			}			break;		case R.id.btn_register:			startActivity(new Intent(this,RegisterActivity.class));			break;		}	}}

?用户注册RegisterActivity

package com.android.client.task.user.reg;import java.io.UnsupportedEncodingException;import org.apache.http.entity.StringEntity;import org.json.JSONException;import com.alibaba.fastjson.JSONObject;import com.android.client.R;import com.android.client.task.index.IndexActivity;import com.android.client.task.utils.HttpUtil;import com.android.client.task.utils.TaskApi;import com.lidroid.xutils.http.RequestParams;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class RegisterActivity extends Activity implements OnClickListener {		private Button btn_register;	private EditText et_user_name;	private EditText et_user_pwd;	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.register_activity);		btn_register = (Button) findViewById(R.id.btn_register);		btn_register.setOnClickListener(this);		et_user_name=(EditText) findViewById(R.id.et_user_name);		et_user_pwd=(EditText) findViewById(R.id.et_user_pwd);	}	@Override	public void onClick(View v) {		switch (v.getId()) {		case R.id.btn_register:			try {				postRegisterHttp();			} catch (Exception e) {				e.printStackTrace();			}			break;		}	}	// 用户注册	private void postRegisterHttp() throws UnsupportedEncodingException, JSONException {		System.out.println(et_user_name.getText().toString());		RequestParams params = new RequestParams();		params.setHeader("content-type", "application/json");// 头信息		JSONObject jsonObject = new JSONObject();		jsonObject.put("phoneNum", et_user_name.getText().toString());		jsonObject.put("passWord", et_user_pwd.getText().toString());		StringEntity entity = new StringEntity(jsonObject.toString(),"UTF-8");		params.setBodyEntity(entity);		String result = HttpUtil.sendPost(TaskApi.userreg, params, RegisterActivity.this);		org.json.JSONObject js = new org.json.JSONObject(result);		if(js.getInt("result") == 0) {			Toast.makeText(this, js.getString("result"),Toast.LENGTH_SHORT).show();			startActivity(new Intent(this, IndexActivity.class));		}	}}

?Http工具类

package com.android.client.task.utils;import android.content.Context;import android.widget.Toast;import com.lidroid.xutils.HttpUtils;import com.lidroid.xutils.exception.HttpException;import com.lidroid.xutils.http.RequestParams;import com.lidroid.xutils.http.ResponseInfo;import com.lidroid.xutils.http.callback.RequestCallBack;import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;public class HttpUtil {	private static String json  = "";		public static String sendPost(String url,RequestParams params,final Context context) {				HttpUtils httpUtils = new HttpUtils();		httpUtils.send(HttpMethod.POST, url, params,				new RequestCallBack<String>() {					@Override					public void onStart() {						// 加载对话框弹出						// 如:dialog.show();						super.onStart();					}					@Override					public void onFailure(HttpException arg0, String arg1) {						// 加载对话框关闭						// 如:dialog.dissmis();						Toast.makeText(context, "网络不给力",Toast.LENGTH_SHORT).show();					}					@Override					public void onSuccess(ResponseInfo<String> responseInfo) {						// 加载对话框关闭						  json = responseInfo.result;// 接口返回的数据					}				});		return json;	}}

?接口工具类

package com.android.client.task.utils;public class TaskApi {	private static String ip = "http://192.168.8.2:9090";	/**	 * 数据静态初始化	 */		// 用户正常登陆方式	public static String userlogin = ip + "/task/api/user/v2/login/loginbypass";	// 用户注册	public static String userreg = ip + "/task/api/user/v2/reg/reguser";	// 修改用户密码	public static String updatepwd = ip + "";		}

AndroidManifest.xml 配置页面

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.android.client"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk        android:minSdkVersion="8"        android:targetSdkVersion="18" />    	<uses-permission android:name="android.permission.INTERNET" />	    <application        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <activity            android:name="com.android.client.task.user.login.LoginActivity"            android:label="@string/app_name" >            <intent-filter>               	<!-- 该activity 是应用程序的入口 -->                <action android:name="android.intent.action.MAIN" />				<!--  -->                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>                <activity            android:name="com.android.client.task.user.reg.RegisterActivity"/>          <activity            android:name="com.android.client.task.index.IndexActivity" />    </application></manifest>

?

  相关解决方案