Runnable Handler
2016-01-03 16:41
330 查看
线程 和 操作通讯 package com.ningbo.c21.nbxt; import android.app.AlertDialog; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.AsyncTask; import android.os.Bundle; import android.app.Activity; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.sql.SQLOutput; import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Login extends Activity { private EditText login_name; private EditText login_paw; private Button login_but; private Handlerhandler=null; HttpClient client; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); client = new DefaultHttpClient(); login_name = (EditText)findViewById(R.id.login_name); login_paw = (EditText)findViewById(R.id.login_paw); login_but = (Button)findViewById(R.id.login_button); login_but.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // readNet("http://www.c21ningbo.com.cn/APP_Houseinfo/Login.asmx/HasUser", login_name.getText().toString(), login_paw.getText().toString()); // readNet("http://www.c21ningbo.com.cn/APP_Houseinfo/LoginMethod.ashx?method=HasUser", login_name.getText().toString(), login_paw.getText().toString()); // Login.this.finish(); //new Thread(networkTask).start(); //开一条子线程加载网络数据 Runnable runnable=new Runnable() { public void run() { // 在这里进行 http request.网络请求相关操作 HttpPost post = new HttpPost("http://www********"); String mess = ""; try { List<BasicNameValuePair> list = new ArrayList<BasicNameValuePair>(); list.add(new BasicNameValuePair("userid", login_name.getText().toString())); list.add(new BasicNameValuePair("pwd", login_paw.getText().toString())); post.setEntity(new UrlEncodedFormEntity(list)); HttpResponse response = client.execute(post); mess = EntityUtils.toString(response.getEntity()); } catch (Exception ex) { ex.printStackTrace(); } //发送消息,并把mess结合对象传递过去 handler.sendMessage(handler.obtainMessage(0, mess)); //关键字是0 } }; new Thread(runnable).start(); handler = new Handler(){ @Override public void handleMessage(Message msg) { String mymess = msg.obj.toString(); if(mymess.equals("错误") || mymess == null || mymess.equals("")){ loginFalseDoing(); } else { loginTrueDoing(mymess); } } }; // try // { // //开启线程 // new Thread(runnable).start(); // //handler与线程之间的通信及数据处理 // handler=new Handler() // { // public void handleMessage(Message msg) // { // if(msg.what == 0) // { // //msg.obj是获取handler发送信息传来的数据 // @SuppressWarnings("unchecked") // //ArrayList<Person> person=(ArrayList<Person>) msg.obj; // //给ListView绑定数据 // String mygetstring = (String) msg.obj; // if(mygetstring.equals("错误") || mygetstring == null || mygetstring.equals("")){ // loginFalseDoing(); // } // else { // loginTrueDoing(mygetstring); // } // } // } // }; // } // catch (Exception e) // { // e.printStackTrace(); // } } }); } //login true public void loginTrueDoing(String UserName){ SharedPreferences sharedPreferences = getSharedPreferences("mySP", Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString("username", UserName); editor.commit(); Login.this.finish(); } //login false private void loginFalseDoing() { //new AlertDialog.Builder(this).setTitle("确认").setMessage("确定吗?").setNegativeButton("",null).show(); AlertDialog dialog =new AlertDialog.Builder(this) .setTitle("错误") .setMessage("用户名或密码错误") .setPositiveButton("确定",null) .show(); } }
相关文章推荐
- Dungeon Master
- Android TCP 简单实现
- 【Windows Form 实战】学生成绩管理系统(四) 登录模块设计
- Hibernate之缓存,N+1
- Dungeon Master
- HTML使用<span>和<div>布局中遇到的问题
- SimpleAdapter gridView
- eval在MATLAB和Shell中的作用
- java解析和生成GSON串
- C++中的类模板详细讲述
- tbytes 转 十六进制 string
- Java学习----this和super(在继承中)
- Spark学习笔记
- Linux基本命令
- 在ORCAD里面如何给元器件自动编号
- bzoj 4373: 算术天才⑨与等差数列
- 三种方法实现Linux系统调用
- UML遗留问题总结
- 机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)
- 我为什么要写博客