第一次使用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>
?