android注册登录界面

满堂花醉三千客,一剑霜寒十四州。这篇文章主要讲述android注册登录界面相关的知识,希望能为你提供帮助。
【android注册登录界面】android的注册登录界面,主要写一下用到的东西。
首先,后台用jsp写,这里的话用到的返回数据为json,可以用一种很简单的方式

< %@ page language="java" contentType="text/json; charset=UTF-8" pageEncoding="UTF-8" import="java.sql.*,java.io.*,java.util.*" %>

这里面修改 contentType=“text/json”就可以了。
对于客户端,主要是
  • 界面之间的跳转
  • 对服务器的请求
  • 对json数据的解析
1)界面之间的跳转
用Intent,Intent i=new Intent(MainActivity.this,ResActivity.class);
startActivity(i)
2)android的网络请求主要有三个大方式我们这里用httpclinet
首先,android不允许把http请求放在主线程中(容易阻塞),所以必须新建一个副
线程来处理网络请求部分。具体请求时首先用到client(DefaultHttpClient类)用于
执行请求。然后用到HttpPost作为一个post对象(get方法用HttpGet),再是post参数的
设置,UrlEncodedFormEntity entity=new UrlEncodedFormEntity(parameter,"utf-8");
parameter为一个数组列表。
privatevoid get(final String name,final String password){ new Thread(new Runnable(){ public void run(){ BufferedReader reader=null; StringBuffer sb=null; String result=""; DefaultHttpClient client=new DefaultHttpClient(); String uri="http://10.65.89.152/server/servers.jsp"; List parameter=new ArrayList(); parameter.add(new BasicNameValuePair("username",name)); parameter.add(new BasicNameValuePair("password",password)); HttpPost request=new HttpPost(uri); //HttpResponse responses=client.execute(request); try{ UrlEncodedFormEntity entity=new UrlEncodedFormEntity(parameter,"utf-8"); request.setEntity(entity); //Toast.makeText(MainActivity.this,"success1 connect",Toast.LENGTH_SHORT).show(); //request.setEntity(entity); HttpResponse response=client.execute(request); //Toast.makeText(MainActivity.this,"success2 connect",Toast.LENGTH_SHORT).show(); if(response.getStatusLine().getStatusCode()==HttpStatus.SC_OK){ //Toast.makeText(MainActivity.this,"success connect",Toast.LENGTH_SHORT).show(); reader=new BufferedReader(new InputStreamReader(response.getEntity().getContent())); sb=new StringBuffer(); String line=""; String NL=System.getProperty("line.separator"); while((line=reader.readLine())!=null){ sb.append(line); } } //Toast.makeText(MainActivity.this,"faile connect",Toast.LENGTH_SHORT).show(); }catch(ClientProtocolException e){ //Toast.makeText(MainActivity.this,"error connect",Toast.LENGTH_SHORT).show(); e.printStackTrace(); }catch(IOException e){ //Toast.makeText(MainActivity.this,"error2 connect",Toast.LENGTH_SHORT).show(); e.printStackTrace(); }try{ if(null!=reader){ reader.close(); reader=null; } }catch(IOException e){ e.printStackTrace(); } if(null!=sb){ result=sb.toString(); }Message message = new Message(); message.what = SHOW_RESPONSE; message.obj = result; handler.sendMessage(message); Message messages=new Message(); } }).start(); }

3)对于json对象的处理。
用到一个jar包 gson。
private void parseJSONWithJSONObject(String jsonData){
try {
//将json字符串jsonData装入JSON数组,即JSONArray
//jsonData可以是从文件中读取,也可以从服务器端获得
JSONArray jsonArray = new JSONArray(jsonData);
String state=null;
String name=null;
String id=null;
for (int i = 0; i< jsonArray.length(); i++) {
//循环遍历,依次取出JSONObject对象
//用getInt和getString方法取出对应键值
JSONObject jsonObject = jsonArray.getJSONObject(i);
// int stu_no = jsonObject.getInt("stu_no");
state=jsonObject.getString("code"); name=jsonObject.getString("name"); id=jsonObject.getString("id"); Log.d("MainActivity","code:"+state); } if(state.equals("success")){ Intent ii=new Intent(MainActivity.this,SecActivity.class); ii.putExtra("USERNAME",name); ii.putExtra("id", id); startActivity(ii); } } catch (Exception e) { e.printStackTrace(); } }

4)主线程与副线程的通信
public static final int SHOW_RESPONSE = 0;
private Handler handler = new Handler() {@Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case SHOW_RESPONSE: String response = (String) msg.obj; //textviews.setText(response); parseJSONWithJSONObject(response); break; default: break; } }};
























    推荐阅读