1、联系人表结构

添加一条联系人信息

packagecom.itheima.insertcontact;

importandroid.app.Activity;

importandroid.content.ContentValues;

importandroid.database.Cursor;

importandroid.net.Uri;

importandroid.os.Bundle;

importandroid.view.View;

publicclassMainActivityextendsActivity{

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

publicvoidclick(Viewview){

//1.raw_contact表里面添加一条联系人的id

Uriuri=Uri.parse("content://com.android.contacts/raw_contacts");

Cursorcursor=getContentResolver().query(uri,newString[]{"_id"},null,null,null);

cursor.moveToLast();

int_id=cursor.getInt(0);

intnewid=_id+1;

ContentValuesvalues=newContentValues();

values.put("contact_id",newid);

getContentResolver().insert(uri,values);

//2.根据联系人的iddata表里面添加对应的数据

UridataUri=Uri.parse("content://com.android.contacts/data");

//插入电话

ContentValuesphoneValues=newContentValues();

phoneValues.put("data1","999999");

phoneValues.put("mimetype","vnd.android.cursor.item/phone_v2");

phoneValues.put("raw_contact_id",newid);

getContentResolver().insert(dataUri,phoneValues);

//插入邮箱

ContentValuesemailValues=newContentValues();

emailValues.put("data1","zhaoqi@itheima.com");

emailValues.put("mimetype","vnd.android.cursor.item/email_v2");

emailValues.put("raw_contact_id",newid);

getContentResolver().insert(dataUri,emailValues);

//插入姓名

ContentValuesnameValues=newContentValues();

nameValues.put("data1","zhaoqi");

nameValues.put("mimetype","vnd.android.cursor.item/name");

nameValues.put("raw_contact_id",newid);

getContentResolver().insert(dataUri,nameValues);

}

}

读取联系人

packagecom.itheima.readcontacts.service;

importjava.util.ArrayList;

importjava.util.List;

importandroid.content.ContentResolver;

importandroid.content.Context;

importandroid.database.Cursor;

importandroid.net.Uri;

importcom.itheima.readcontacts.domain.ContactInfo;

publicclassContactInfoService{

/**

*获取手机里面全部的联系人信息

*@return

*/

publicstaticList<ContactInfo>getContactInfos(Contextcontext){

ContentResolverresolver=context.getContentResolver();

Uriuri=Uri.parse("content://com.android.contacts/raw_contacts");

UridataUri=Uri.parse("content://com.android.contacts/data");

List<ContactInfo>contactInfos=newArrayList<ContactInfo>();

Cursorcursor=resolver.query(uri,newString[]{"contact_id"},null,null,null);

while(cursor.moveToNext()){

Stringcontact_id=cursor.getString(0);

System.out.println("联系人id:"+contact_id);

//根据联系人的id查询data表里面的数据

CursordataCursor=resolver.query(dataUri,newString[]{"data1","mimetype"},"raw_contact_id=?",newString[]{contact_id},null);

ContactInfocontactInfo=newContactInfo();

while(dataCursor.moveToNext()){

Stringdata1=dataCursor.getString(0);

Stringmimetype=dataCursor.getString(1);

if("vnd.android.cursor.item/phone_v2".equals(mimetype)){

contactInfo.setPhone(data1);

}elseif("vnd.android.cursor.item/email_v2".equals(mimetype)){

contactInfo.setEmail(data1);

}elseif("vnd.android.cursor.item/name".equals(mimetype)){

contactInfo.setName(data1);

}

}

dataCursor.close();

contactInfos.add(contactInfo);

}

cursor.close();

returncontactInfos;

}

}

2、从Internet获取数据

利用HttpURLConnection对象,我们可以从网络中获取网页数据.

URLurl=newURL("http://www.sohu.com");

HttpURLConnectionconn=(HttpURLConnection)url.openConnection();

conn.setConnectTimeout(5*1000);//设置连接超时

conn.setRequestMethod(GET);//get方式发起请求

if(conn.getResponseCode()!=200)thrownewRuntimeException("请求url失败");

InputStreamis=conn.getInputStream();//得到网络返回的输入流

Stringresult=readData(is,"GBK");

conn.disconnect();

//第一个参数为输入流,第二个参数为字符集编码

publicstaticStringreadData(InputStreaminSream,StringcharsetName)throwsException{

ByteArrayOutputStreamoutStream=newByteArrayOutputStream();

byte[]buffer=newbyte[1024];

intlen=-1;

while((len=inSream.read(buffer))!=-1){

outStream.write(buffer,0,len);

}

byte[]data=outStream.toByteArray();

outStream.close();

inSream.close();

returnnewString(data,charsetName);

}

<!--访问internet权限-->

<uses-permissionandroid:name="android.permission.INTERNET"/>

利用HttpURLConnection对象,我们可以从网络中获取文件数据.

URLurl=newURL("http://photocdn.sohu.com/20100125/Img269812337.jpg");

HttpURLConnectionconn=(HttpURLConnection)url.openConnection();

conn.setConnectTimeout(5*1000);

conn.setRequestMethod("GET");

if(conn.getResponseCode()!=200)thrownewRuntimeException("请求url失败");

InputStreamis=conn.getInputStream();

readAsFile(is,"Img269812337.jpg");

publicstaticvoidreadAsFile(InputStreaminSream,Filefile)throwsException{

FileOutputStreamoutStream=newFileOutputStream(file);

byte[]buffer=newbyte[1024];

intlen=-1;

while((len=inSream.read(buffer))!=-1){

outStream.write(buffer,0,len);

}

outStream.close();

inSream.close();

}

3、向Internet发送请求参数

StringrequestUrl="http://localhost:8080/itcast/contanctmanage.do";

Map<String,String>requestParams=newHashMap<String,String>();

requestParams.put("age","12");

requestParams.put("name","中国");

StringBuilderparams=newStringBuilder();

for(Map.Entry<String,String>entry:requestParams.entrySet()){

params.append(entry.getKey());

params.append("=");

params.append(URLEncoder.encode(entry.getValue(),"UTF-8"));

params.append("&");

}

if(params.length()>0)params.deleteCharAt(params.length()-1);

byte[]data=params.toString().getBytes();

URLrealUrl=newURL(requestUrl);

HttpURLConnectionconn=(HttpURLConnection)realUrl.openConnection();

conn.setDoOutput(true);//发送POST请求必须设置允许输出

conn.setUseCaches(false);//不使用Cache

conn.setRequestMethod("POST");

conn.setRequestProperty("Connection","Keep-Alive");//维持长连接

conn.setRequestProperty("Charset","UTF-8");

conn.setRequestProperty("Content-Length",String.valueOf(data.length));

conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");

DataOutputStreamoutStream=newDataOutputStream(conn.getOutputStream());

outStream.write(data);

outStream.flush();

if(conn.getResponseCode()==200){

Stringresult=readAsString(conn.getInputStream(),"UTF-8");

outStream.close();

System.out.println(result);

}

4、向Internet发送xml数据

利用HttpURLConnection对象,我们可以向网络发送xml数据.

StringBuilderxml=newStringBuilder();

xml.append("<?xmlversion=\"1.0\"encoding=\"utf-8\"?>");

xml.append("<M1V=10000>");

xml.append("<UI=1D=\"N73\">中国</U>");

xml.append("</M1>");

byte[]xmlbyte=xml.toString().getBytes("UTF-8");

URLurl=newURL("http://localhost:8080/itcast/contanctmanage.do?method=readxml");

HttpURLConnectionconn=(HttpURLConnection)url.openConnection();

conn.setConnectTimeout(5*1000);

conn.setDoOutput(true);//允许输出

conn.setUseCaches(false);//不使用Cache

conn.setRequestMethod("POST");

conn.setRequestProperty("Connection","Keep-Alive");//维持长连接

conn.setRequestProperty("Charset","UTF-8");

conn.setRequestProperty("Content-Length",String.valueOf(xmlbyte.length));

conn.setRequestProperty("Content-Type","text/xml;charset=UTF-8");

DataOutputStreamoutStream=newDataOutputStream(conn.getOutputStream());

outStream.write(xmlbyte);//发送xml数据

outStream.flush();

if(conn.getResponseCode()!=200)thrownewRuntimeException("请求url失败");

InputStreamis=conn.getInputStream();//获取返回数据

Stringresult=readAsString(is,"UTF-8");

outStream.close();

5、网络图片查看器

packagecom.ithiema.newimageviewer;

importjava.io.InputStream;

importjava.net.HttpURLConnection;

importjava.net.URL;

importandroid.app.Activity;

importandroid.graphics.Bitmap;

importandroid.graphics.BitmapFactory;

importandroid.os.Bundle;

importandroid.os.Handler;

importandroid.os.Message;

importandroid.text.TextUtils;

importandroid.view.View;

importandroid.widget.EditText;

importandroid.widget.ImageView;

importandroid.widget.Toast;

publicclassMainActivityextendsActivity{

protectedstaticfinalintGET_IMAGE_SUCCESS=1;

protectedstaticfinalintSERVER_ERROR=2;

protectedstaticfinalintLOAD_IMAGE_ERROR=3;

privateImageViewiv_icon;

privateEditTextet_path;

/**

*在主线程创建一个消息处理器

*/

privateHandlerhandler=newHandler(){

//处理消息的运行在主线程里面

@Override

publicvoidhandleMessage(Messagemsg){

super.handleMessage(msg);

switch(msg.what){

caseGET_IMAGE_SUCCESS:

Bitmapbm=(Bitmap)msg.obj;

iv_icon.setImageBitmap(bm);

break;

caseSERVER_ERROR:

Toast.makeText(MainActivity.this,"连接服务器错误",0).show();

break;

caseLOAD_IMAGE_ERROR:

Toast.makeText(MainActivity.this,"获取图片错误",0).show();

break;

}

}

};

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

iv_icon=(ImageView)findViewById(R.id.iv_icon);

et_path=(EditText)findViewById(R.id.et_path);

getMainLooper();

}

publicvoidclick(Viewview){

finalStringpath=et_path.getText().toString().trim();

if(TextUtils.isEmpty(path)){

Toast.makeText(this,"路径不能为空",0).show();

return;

}else{

newThread(){

publicvoidrun(){

//httpget的方式请求数据.获取图片的流

try{

URLurl=newURL(path);

HttpURLConnectionconn=(HttpURLConnection)url

.openConnection();

//设置请求方式

conn.setRequestMethod("GET");

//设置连接超时时间

conn.setConnectTimeout(3000);

conn.setRequestProperty(

"User-Agent",

"Mozilla/4.0(compatible;MSIE8.0;WindowsNT5.1;Trident/4.0;.NET4.0C;.NET4.0E;.NETCLR2.0.50727;.NETCLR3.0.4506.2152;.NETCLR3.5.30729;Shuame)Mozilla/4.0(compatible;MSIE8.0;WindowsNT5.1;Trident/4.0;.NET4.0C;.NET4.0E;.NETCLR2.0.50727;.NETCLR3.0.4506.2152;.NETCLR3.5.30729;Shuame)");

//获取服务器端返回的状态码

intcode=conn.getResponseCode();

if(code==200){

//获取服务器端返回的流

InputStreamis=conn.getInputStream();

Bitmapbitmap=BitmapFactory.decodeStream(is);

//iv_icon.setImageBitmap(bitmap);

//不可以直接更新界面,发送消息更新界面

Messagemsg=newMessage();

msg.obj=bitmap;

msg.what=GET_IMAGE_SUCCESS;

handler.sendMessage(msg);

}else{

//Toast.makeText(MainActivity.this,"连接服务器错误",0).show();

Messagemsg=newMessage();

msg.what=SERVER_ERROR;

handler.sendMessage(msg);

}

}catch(Exceptione){

e.printStackTrace();

//Toast.makeText(getApplicationContext(),"获取图片失败",0).show();

Messagemsg=newMessage();

msg.what=LOAD_IMAGE_ERROR;

handler.sendMessage(msg);

}

};

}.start();

}

}

}

6、HTML源代码查看器

packagecom.itheima.htmlviewer;

importjava.io.ByteArrayOutputStream;

importjava.io.InputStream;

importjava.net.HttpURLConnection;

importjava.net.MalformedURLException;

importjava.net.URL;

importandroid.app.Activity;

importandroid.os.Bundle;

importandroid.os.Handler;

importandroid.os.Message;

importandroid.text.TextUtils;

importandroid.view.View;

importandroid.widget.EditText;

importandroid.widget.TextView;

importandroid.widget.Toast;

publicclassMainActivityextendsActivity{

protectedstaticfinalintGET_HTML_FINISH=1;

protectedstaticfinalintLOAD_ERROR=2;

privateTextViewtv_html;

privateEditTextet_path;

privateHandlerhandler=newHandler(){

publicvoidhandleMessage(android.os.Messagemsg){

switch(msg.what){

caseGET_HTML_FINISH:

Stringhtml=(String)msg.obj;

tv_html.setText(html);

break;

caseLOAD_ERROR:

Toast.makeText(getApplicationContext(),"获取html失败",0).show();

break;

}

};

};

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

tv_html=(TextView)findViewById(R.id.tv_html);

et_path=(EditText)findViewById(R.id.et_path);

}

publicvoidclick(Viewview){

finalStringpath=et_path.getText().toString().trim();

if(TextUtils.isEmpty(path)){

Toast.makeText(this,"路径不能为空",0).show();

}else{

newThread(){

publicvoidrun(){

try{

URLurl=newURL(path);

HttpURLConnectionconn=(HttpURLConnection)url.openConnection();

conn.setRequestMethod("GET");

conn.setConnectTimeout(3000);

intcode=conn.getResponseCode();

if(code==200){

InputStreamis=conn.getInputStream();

ByteArrayOutputStreambos=newByteArrayOutputStream();

intlen=0;

byte[]buffer=newbyte[1024];

while((len=is.read(buffer))!=-1){

bos.write(buffer,0,len);

}

is.close();

Stringhtml=newString(bos.toByteArray(),"gbk");

Messagemsg=newMessage();

msg.what=GET_HTML_FINISH;

msg.obj=html;

handler.sendMessage(msg);

}else{

Messagemsg=newMessage();

msg.what=LOAD_ERROR;

handler.sendMessage(msg);

}

}catch(Exceptione){

Messagemsg=newMessage();

msg.what=LOAD_ERROR;

handler.sendMessage(msg);

e.printStackTrace();

}

};

}.start();

}

}

}

7、模拟网络登录

packagecom.itheima.login;

importcom.itheima.login.service.LoginService;

importandroid.os.Bundle;

importandroid.os.Handler;

importandroid.os.Message;

importandroid.app.Activity;

importandroid.text.TextUtils;

importandroid.view.Menu;

importandroid.view.View;

importandroid.widget.CheckBox;

importandroid.widget.EditText;

importandroid.widget.Toast;

/**

*activity实际上是上下文的一个子类

*@authorAdministrator

*

*/

publicclassMainActivityextendsActivity{

protectedstaticfinalintLOGIN=1;

protectedstaticfinalintERROR=2;

privateEditTextet_username;

privateEditTextet_password;

privateCheckBoxcb_remeber_pwd;

privateHandlerhandler=newHandler(){

publicvoidhandleMessage(android.os.Messagemsg){

switch(msg.what){

caseLOGIN:

Stringinfo=(String)msg.obj;

Toast.makeText(getApplicationContext(),info,0).show();

break;

caseERROR:

Toast.makeText(getApplicationContext(),"连接网络失败...",0).show();

break;

}

};

};

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

cb_remeber_pwd=(CheckBox)findViewById(R.id.cb_remeber_pwd);

et_username=(EditText)findViewById(R.id.et_username);

et_password=(EditText)findViewById(R.id.et_password);

try{

Stringresult=LoginService.readUserInfoFromFile(this);

String[]infos=result.split("##");

et_username.setText(infos[0]);

et_password.setText(infos[1]);

}catch(Exceptione){

e.printStackTrace();

}

}

/**

*登陆按钮的点击事件

*@paramview

*/

publicvoidlogin(Viewview){

finalStringusername=et_username.getText().toString().trim();

finalStringpassword=et_password.getText().toString().trim();

if(TextUtils.isEmpty(username)||TextUtils.isEmpty(password)){

Toast.makeText(getApplicationContext(),"用户名或者密码不能为空",0).show();

return;

}

//检查是否勾选了cb

if(cb_remeber_pwd.isChecked()){//记住密码

try{

LoginService.saveUserInfoToFile(this,username,password);

Toast.makeText(this,"保存用户名密码成功",0).show();

}catch(Exceptione){

e.printStackTrace();

Toast.makeText(getApplicationContext(),"保存用户名密码失败",0).show();

}

}

newThread(){

publicvoidrun(){

//登陆到服务器,发送一个httpget的请求

try{

Stringresult=LoginService.loginByHttpClientPost(username,password);

Messagemsg=newMessage();

msg.what=LOGIN;

msg.obj=result;

handler.sendMessage(msg);

}catch(Exceptione){

e.printStackTrace();

Messagemsg=newMessage();

msg.what=ERROR;

handler.sendMessage(msg);

}

};

}.start();

}

}

packagecom.itheima.login.service;

importjava.io.BufferedReader;

importjava.io.File;

importjava.io.FileInputStream;

importjava.io.FileOutputStream;

importjava.io.InputStream;

importjava.io.InputStreamReader;

importjava.io.OutputStream;

importjava.net.HttpURLConnection;

importjava.net.URL;

importjava.net.URLEncoder;

importjava.util.ArrayList;

importjava.util.List;

importorg.apache.http.HttpResponse;

importorg.apache.http.NameValuePair;

importorg.apache.http.client.HttpClient;

importorg.apache.http.client.entity.UrlEncodedFormEntity;

importorg.apache.http.client.methods.HttpGet;

importorg.apache.http.client.methods.HttpPost;

importorg.apache.http.impl.client.DefaultHttpClient;

importorg.apache.http.message.BasicNameValuePair;

importandroid.content.Context;

importcom.itheima.login.utils.StreamUtils;

/**

*登陆相关的服务

*

*@authorAdministrator

*

*/

publicclassLoginService{

//上下文其实提供了应用程序的一个详细的环境信息.包括包名是什么/data/data/目录在哪里.

//wedochickenright

/**

*保存用户信息到文件

*

*@paramusername

*用户名

*@parampassword

*密码

*/

publicstaticvoidsaveUserInfoToFile(Contextcontext,Stringusername,

Stringpassword)throwsException{

//Filefile=newFile("/data/data/com.itheima.login/info.txt");

//Filefile=newFile(context.getFilesDir(),"info.txt");//在当前应用程序的目录下

//创建一个files目录里面有一个文件info.txt

//FileOutputStreamfos=newFileOutputStream(file);

FileOutputStreamfos=context.openFileOutput("info.txt",

Context.MODE_PRIVATE);//追加模式

//zhangsan##123456

fos.write((username+"##"+password).getBytes());

fos.close();

}

/**

*读取用户的用户名和密码

*

*@return//zhangsan##123456

*/

publicstaticStringreadUserInfoFromFile(Contextcontext)throwsException{

Filefile=newFile(context.getFilesDir(),"info.txt");

FileInputStreamfis=newFileInputStream(file);

BufferedReaderbr=newBufferedReader(newInputStreamReader(fis));

Stringline=br.readLine();

fis.close();

br.close();

returnline;

}

/**

*采用httpget方式提交数据到服务器

*

*@return

*/

publicstaticStringloginByHttpGet(Stringusername,Stringpassword)

throwsException{

//http://localhost:8080/web/LoginServlet?username=zhangsan&password=123

Stringpath="http://192.168.1.100:8080/web/LoginServlet?username="

+URLEncoder.encode(username,"UTF-8")+"&password="

+URLEncoder.encode(password,"utf-8");

URLurl=newURL(path);

HttpURLConnectionconn=(HttpURLConnection)url.openConnection();

conn.setRequestMethod("GET");

conn.setConnectTimeout(5000);

intcode=conn.getResponseCode();

if(code==200){

InputStreamis=conn.getInputStream();

//is里面的内容转化成string文本.

Stringresult=StreamUtils.readStream(is);

returnresult;

}else{

returnnull;

}

}

/**

*采用httppost方式提交数据到服务器

*

*@return

*/

publicstaticStringloginByHttpPost(Stringusername,Stringpassword)

throwsException{

//1.提交的地址

Stringpath="http://192.168.1.100:8080/web/LoginServlet";

URLurl=newURL(path);

HttpURLConnectionconn=(HttpURLConnection)url.openConnection();

//2.请求方式

conn.setRequestMethod("POST");

//准备数据

//username=zhangsan&password=123

Stringdata="username="+URLEncoder.encode(username,"UTF-8")

+"&password="+URLEncoder.encode(password,"UTF-8");

//3.注意:一定要设置请求头参数

//设置数据是一个form表单的类型

conn.setRequestProperty("Content-Type",

"application/x-www-form-urlencoded");

conn.setRequestProperty("Content-Length",data.length()+"");

conn.setConnectTimeout(5000);

//4.post请求实际上是把数据以流的方式写给了服务器

//设置允许通过http请求向服务器写数据

conn.setDoOutput(true);

//得到一个向服务写数据的流

OutputStreamos=conn.getOutputStream();

os.write(data.getBytes());

intcode=conn.getResponseCode();

if(code==200){

InputStreamis=conn.getInputStream();

//is里面的内容转化成string文本.

Stringresult=StreamUtils.readStream(is);

returnresult;

}else{

returnnull;

}

}

publicstaticStringloginByHttpClientGet(Stringusername,Stringpassword)

throwsException{

//1.打开一个浏览器

HttpClientclient=newDefaultHttpClient();

//2.输入地址

Stringpath="http://192.168.1.100:8080/web/LoginServlet?username="

+URLEncoder.encode(username,"UTF-8")+"&password="

+URLEncoder.encode(password,"utf-8");

HttpGethttpGet=newHttpGet(path);

//3.敲回车

HttpResponseresponse=client.execute(httpGet);

intcode=response.getStatusLine().getStatusCode();

if(code==200){

InputStreamis=response.getEntity().getContent();

//is里面的内容转化成string文本.

Stringresult=StreamUtils.readStream(is);

returnresult;

}else{

returnnull;

}

}

/**

*采用httpclientpost方式提交数据到服务器

*@paramusername

*@parampassword

*@return

*@throwsException

*/

publicstaticStringloginByHttpClientPost(Stringusername,Stringpassword)

throwsException{

//1.打开一个浏览器

HttpClientclient=newDefaultHttpClient();

//2.输入地址

Stringpath="http://192.168.1.100:8080/web/LoginServlet";

HttpPosthttpPost=newHttpPost(path);

//设置要提交的数据实体

List<NameValuePair>parameters=newArrayList<NameValuePair>();

parameters.add(newBasicNameValuePair("username",username));

parameters.add(newBasicNameValuePair("password",password));

UrlEncodedFormEntityentity= newUrlEncodedFormEntity(parameters,"UTF-8");

httpPost.setEntity(entity);

//3.敲回车

HttpResponseresponse=client.execute(httpPost);

intcode=response.getStatusLine().getStatusCode();

if(code==200){

InputStreamis=response.getEntity().getContent();

//is里面的内容转化成string文本.

Stringresult=StreamUtils.readStream(is);

returnresult;

}else{

returnnull;

}

}

}

packagecom.itheima.login.utils;

importjava.io.ByteArrayOutputStream;

importjava.io.IOException;

importjava.io.InputStream;

publicclassStreamUtils{

/**

*用默认码表转化一个inputstream里面的内容到字符串

*@paramis

*@return

*/

publicstaticStringreadStream(InputStreamis){

try{

ByteArrayOutputStreambos=newByteArrayOutputStream();

intlen=0;

byte[]buffer=newbyte[1024];

while((len=is.read(buffer))!=-1){

bos.write(buffer,0,len);

}

is.close();

returnnewString(bos.toByteArray());

}catch(IOExceptione){

e.printStackTrace();

return"";

}

}

}

8、SmartImageView网络图片查看器

packagecom.ithiema.newimageviewer;

importjava.io.InputStream;

importjava.net.HttpURLConnection;

importjava.net.URL;

importandroid.app.Activity;

importandroid.graphics.Bitmap;

importandroid.graphics.BitmapFactory;

importandroid.os.Bundle;

importandroid.os.Handler;

importandroid.os.Message;

importandroid.text.TextUtils;

importandroid.view.View;

importandroid.widget.EditText;

importandroid.widget.ImageView;

importandroid.widget.Toast;

publicclassMainActivityextendsActivity{

protectedstaticfinalintGET_IMAGE_SUCCESS=1;

protectedstaticfinalintSERVER_ERROR=2;

protectedstaticfinalintLOAD_IMAGE_ERROR=3;

privateImageViewiv_icon;

privateEditTextet_path;

/**

*在主线程创建一个消息处理器

*/

privateHandlerhandler=newHandler(){

//处理消息的运行在主线程里面

@Override

publicvoidhandleMessage(Messagemsg){

super.handleMessage(msg);

switch(msg.what){

caseGET_IMAGE_SUCCESS:

Bitmapbm=(Bitmap)msg.obj;

iv_icon.setImageBitmap(bm);

break;

caseSERVER_ERROR:

Toast.makeText(MainActivity.this,"连接服务器错误",0).show();

break;

caseLOAD_IMAGE_ERROR:

Toast.makeText(MainActivity.this,"获取图片错误",0).show();

break;

}

}

};

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

iv_icon=(ImageView)findViewById(R.id.iv_icon);

et_path=(EditText)findViewById(R.id.et_path);

getMainLooper();

}

publicvoidclick(Viewview){

finalStringpath=et_path.getText().toString().trim();

if(TextUtils.isEmpty(path)){

Toast.makeText(this,"路径不能为空",0).show();

return;

}else{

newThread(){

publicvoidrun(){

//httpget的方式请求数据.获取图片的流

try{

URLurl=newURL(path);

HttpURLConnectionconn=(HttpURLConnection)url

.openConnection();

//设置请求方式

conn.setRequestMethod("GET");

//设置连接超时时间

conn.setConnectTimeout(3000);

conn.setRequestProperty(

"User-Agent",

"Mozilla/4.0(compatible;MSIE8.0;WindowsNT5.1;Trident/4.0;.NET4.0C;.NET4.0E;.NETCLR2.0.50727;.NETCLR3.0.4506.2152;.NETCLR3.5.30729;Shuame)Mozilla/4.0(compatible;MSIE8.0;WindowsNT5.1;Trident/4.0;.NET4.0C;.NET4.0E;.NETCLR2.0.50727;.NETCLR3.0.4506.2152;.NETCLR3.5.30729;Shuame)");

//获取服务器端返回的状态码

intcode=conn.getResponseCode();

if(code==200){

//获取服务器端返回的流

InputStreamis=conn.getInputStream();

Bitmapbitmap=BitmapFactory.decodeStream(is);

//iv_icon.setImageBitmap(bitmap);

//不可以直接更新界面,发送消息更新界面

Messagemsg=newMessage();

msg.obj=bitmap;

msg.what=GET_IMAGE_SUCCESS;

handler.sendMessage(msg);

}else{

//Toast.makeText(MainActivity.this,"连接服务器错误",0).show();

Messagemsg=newMessage();

msg.what=SERVER_ERROR;

handler.sendMessage(msg);

}

}catch(Exceptione){

e.printStackTrace();

//Toast.makeText(getApplicationContext(),"获取图片失败",0).show();

Messagemsg=newMessage();

msg.what=LOAD_IMAGE_ERROR;

handler.sendMessage(msg);

}

};

}.start();

}

}

}

9、AsyncHttp登录

packagecom.itheima.login;

importjava.net.URLEncoder;

importcom.loopj.android.http.AsyncHttpClient;

importcom.loopj.android.http.AsyncHttpResponseHandler;

importcom.loopj.android.http.RequestParams;

importandroid.os.Bundle;

importandroid.os.Handler;

importandroid.os.Message;

importandroid.app.Activity;

importandroid.text.TextUtils;

importandroid.view.Menu;

importandroid.view.View;

importandroid.widget.CheckBox;

importandroid.widget.EditText;

importandroid.widget.Toast;

/**

*activity实际上是上下文的一个子类

*

*@authorAdministrator

*

*/

publicclassMainActivityextendsActivity{

privateEditTextet_username;

privateEditTextet_password;

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

et_username=(EditText)findViewById(R.id.et_username);

et_password=(EditText)findViewById(R.id.et_password);

}

/**

*GET登陆按钮的点击事件

*

*@paramview

*/

publicvoidlogin(Viewview){

finalStringusername=et_username.getText().toString().trim();

finalStringpassword=et_password.getText().toString().trim();

if(TextUtils.isEmpty(username)||TextUtils.isEmpty(password)){

Toast.makeText(getApplicationContext(),"用户名或者密码不能为空",0).show();

return;

}

Stringpath="http://192.168.1.100:8080/web/LoginServlet?username="

+URLEncoder.encode(username)+"&password="

+URLEncoder.encode(password);

AsyncHttpClientclient=newAsyncHttpClient();

client.get(path,newAsyncHttpResponseHandler(){

@Override

publicvoidonSuccess(Stringresponse){

Toast.makeText(getApplicationContext(),response,0).show();

}

});

}

/**

*POST登陆按钮的点击事件

*

*@paramview

*/

publicvoidpostLogin(Viewview){

finalStringusername=et_username.getText().toString().trim();

finalStringpassword=et_password.getText().toString().trim();

if(TextUtils.isEmpty(username)||TextUtils.isEmpty(password)){

Toast.makeText(getApplicationContext(),"用户名或者密码不能为空",0).show();

return;

}

Stringpath="http://192.168.1.100:8080/web/LoginServlet";

AsyncHttpClientclient=newAsyncHttpClient();

RequestParamsparams=newRequestParams();

params.put("username",username);

params.put("password",password);

client.post(path,params,newAsyncHttpResponseHandler(){

@Override

publicvoidonSuccess(Stringcontent){

super.onSuccess(content);

Toast.makeText(getApplicationContext(),content,0).show();

}

});

}

}

更多相关文章

  1. Android 在桌面创建一个快捷方式
  2. Android的jni下c与java数据互传测试代码
  3. android ListView内数据的动态添加与删除
  4. Android——百度APIstore+Json——获取新闻频道+新闻数据
  5. Android studio 032 java Tomcat Servlet 搭建服务器
  6. Android使用自带JSONObject解析JSON数据

随机推荐

  1. android 应用如何获取系统权限 以及root
  2. Android代码混淆只需简单三步
  3. Android(安卓)的系统属性(SystemProperti
  4. Android(安卓)他人面试题总结
  5. Android学习笔记(27):日历视图Calendar
  6. Android(安卓)定时/倒计时工具 - 加强版 C
  7. Android(安卓)opencv(三) 边缘检测Sobel
  8. Android中实现下载和解压zip文件功能代码
  9. eclipse无法导入Android工程的解决办法
  10. 使用NDK开发SQLite3