本文共 4514 字,大约阅读时间需要 15 分钟。
希望童鞋可以看一下我关于服务器端的一些说明:
接下来,就开发我们的客户端开发之旅吧
首先关于图片资源,可以到我的相册中下载:相册名
一、用户登录:
这个功能分两篇博客
1.布局:login.xml
2用到的字符串stings.xml
3. arrays.xmlHello World, Login! AuctionClient 欢迎使用591拍卖系统 用户账号: 用户密码: 登录 取消 添加 竞价 浏览竟得物品 您参与竞标的物品 浏览流拍的物品 您当前的拍卖的物品 系统的所有的物品种类 请选择一个物品种类 当前种类的物品 物品名: 物品种类: 物品描述: 赢取价格: 最高竞价: 物品备注: 起拍价格: 有效时间: 结束时间: 竞标价格: 竞标时间: 竞标人: 添加物品种类 添加拍卖物品 种类名称: 种类描述: 物品详情 您的竞价:
4.colors.xml- 查看竞得物品
- 浏览流拍物品
- 管理物品种类
- 管理物品
- 浏览拍卖物品
- 查看自己的竞标
- 一天
- 二天
- 三天
- 四天
- 五天
- 一个星期
- 一个月
5.dimens.xml#FFFFFFFF #00000000 #FF9ed913 #A0cfef83 #bbb
20dip 30px 20px
5 用户登录的Activity:Login.java
package com.infy.auction.client;import java.util.HashMap;import java.util.Map;import org.json.JSONObject;import com.infy.auction.client.util.DialogUtil;import com.infy.auction.client.util.HttpUtil;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;public class Login extends Activity { private static final String TAG = "Login"; // 定义界面中的两个文本框 EditText etName; EditText etPass; // 定义界面中的两个按钮 Button bnLogin; Button bnCancel; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.login); // 获取界面中的两个编辑文本框 etName = (EditText) findViewById(R.id.userEditText); etPass = (EditText) findViewById(R.id.pwdEditText); // 获得界面中的两个按钮 bnLogin = (Button) findViewById(R.id.bnLogin); bnCancel = (Button) findViewById(R.id.bnCancel); // 为bnCancal按钮的单击事件绑定监听器 bnCancel.setOnClickListener((OnClickListener) new FinishListener(this)); bnLogin.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub // 进行输入检验 if (validate()) { // 如果登录成功 if (loginPro()) { Intent intent = new Intent(Login.this, Main.class); startActivity(intent); // 结束该Activity finish(); } } } }); } // 定义内部类 private class FinishListener { public FinishListener(Login login) { // TODO Auto-generated constructor stub etName.setText(""); etPass.setText(""); } } // 登录验证 public boolean loginPro() { // 获取用户名和密码 String username = etName.getText().toString().trim(); String pwd = etPass.getText().toString().trim(); JSONObject jsonObj; try { Log.i(TAG, "Login---"); jsonObj = query(username, pwd); Log.i(TAG, "Login--->" + jsonObj.getString("userId")); // 如果userid大于0 if (jsonObj.getInt("userId") > 0) { return true; } } catch (Exception e) { DialogUtil.showDialog(this, "服务器响应异常,请稍后再试", false); e.printStackTrace(); } return false; } // 对用户名、密码进行检验 private boolean validate() { String username = etName.getText().toString().trim(); if (username.equals("")) { DialogUtil.showDialog(this, "用户账户是必填项", false); return false; } String pwd = etPass.getText().toString().trim(); if (pwd.equals("")) { DialogUtil.showDialog(this, "用户密码不能为空!", false); return false; } return true; } // 定义发送请求的方法 private JSONObject query(String username, String password) throws Exception { // 使用MAP封装请求参数 Mapmap = new HashMap (); map.put("user", username); map.put("pass", password); // 定义发送请求的URL、 String url = HttpUtil.BASE_URL + "servlet/LoginServlet"; // 发送请求 return new JSONObject(HttpUtil.postRequest(url, map)); }}
最后,给出登录的效果图:
转载地址:http://pszmi.baihongyu.com/