赵雅智_handler

package com.example.android_http;

import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.TextUtils;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.example.util.StreamTools;

public class LoginActivity extends Activity {
	private EditText et_username;
	private EditText et_password;

	private TextView tv_result;
	private final int CHANGETEXTVIEW = 1;

	//消息处理者
	private Handler handler = new Handler(){

		@Override
		public void handleMessage(Message msg) {
			super.handleMessage(msg);
			int what = msg.what;//标识
			switch (what) {
			case CHANGETEXTVIEW://这个消息就改变TextView控件的操作
				String result = (String) msg.obj;//附带的对象
				tv_result.setText(result);//改变控件内容
				Toast.makeText(LoginActivity.this, result, Toast.LENGTH_LONG).show();
				break;

			default:
				break;
			}
		}

	};
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_login);
		findView();

	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.login, menu);
		return true;
	}

	public void findView() {
		et_password = (EditText) findViewById(R.id.editpass);
		et_username = (EditText) findViewById(R.id.editusername);
		tv_result = (TextView) findViewById(R.id.tv_result);
	}

	public void login(View v) {
		// 获取点击控件的id
		int id = v.getId();
		// 根据id进行判断
		switch (id) {
		case R.id.btn_login:// 进行登录操作
			// Toast.makeText(getApplicationContext(), "--", 0).show();
			// 获取用户名密码
			final String userName = et_username.getText().toString();
			final String userPass = et_password.getText().toString();

			// 判断是否为空
			if (TextUtils.isEmpty(userName) || TextUtils.isEmpty(userPass)) {
				Toast.makeText(getApplicationContext(), "用户名或者密码不能为空", 0)
						.show();
			} else {
				Toast.makeText(getApplicationContext(), "發送請求道服務器", 0)
				.show();
				// 访问网络(需要一个网络的权限)
				// 访问网络(好事操作)子线程,避免阻塞主线程UI
				// http://172.16.237.200:8080/video/login.do?username=chj&userpass=123

				// 所有耗時操作都要在子線程中
				new Thread() {
					public void run() {
						try {
							// 请求地址
							String spec = "http://172.16.237.200:8080/video/login.do?username="
									+ userName + "&userpass=" + userPass;
							// 根据地址创建URL对象(网络访问url)
							URL url = new URL(spec);
							// 采用http协议打开的连接对象
							HttpURLConnection urlConnection = (HttpURLConnection) url
									.openConnection();
							urlConnection.setRequestMethod("GET");// 以get方式发起请求
							urlConnection.setReadTimeout(5000);// 设置超时
							urlConnection.setConnectTimeout(5000);// 设置连接超时
							urlConnection
									.setRequestProperty("User-Agent",
											"Mozilla/5.0 (Windows NT 6.3; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0");
							// 获取相应的 code 400 200 505 302
							if (urlConnection.getResponseCode() == 200) {
								// 得到网络返回的输入流
								InputStream is = urlConnection.getInputStream();
								//通过工具类处理
								String result = StreamTools.streamToStr(is);

								Message msg = new Message();
								msg.what = CHANGETEXTVIEW;//消息的唯一标志
								msg.obj = result;//改变的内容通过object传过去

								handler.sendMessage(msg);//发送消息

								System.out.println("返回的数据是:" + result);
							} else {
								System.out.println("请求url失败");
							}

						} catch (Exception e) {
							// TODO Auto-generated catch block
							e.printStackTrace();
						}
					};
				}.start();

			}
			break;

		default:
			break;
		}
	}
}

赵雅智_handler,布布扣,bubuko.com

时间: 05-21

赵雅智_handler的相关文章

赵雅智:js知识点汇总

赵雅智:js知识点汇总,布布扣,bubuko.com

赵雅智_Android_Canvas

Android中使用图形处理引擎,2D部分是android SDK内部自己提供,3D部分是用Open GL ES 1.0. android.graphics和android.graphics.drawable包 大部分2D使用的api都在android.graphics和android.graphics.drawable包中. 他们提供了图形处理相关的: Canvas.ColorFilter.Point(点)和RetcF(矩形)等 还有一些动画相关的:AnimationDrawable. Bit

赵雅智_运用Bitmap和Canvas实现图片显示,缩小,旋转,水印

上一篇已经介绍了Android种Bitmap和Canvas的使用,下面我们来写一个具体实例 http://blog.csdn.net/zhaoyazhi2129/article/details/32136179 运行效果: 主要代码 package com.example.guaguale; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import and

赵雅智_service生命周期

Android中的服务和windows中的服务是类似的东西,服务一般没有用户操作界面,它运行于系统中不容易被用户发觉,可以使用它开发如监控之类的程序. 服务的开发步骤 第一步:继承Service类 public class SMSService extends Service { } 第二步:在AndroidManifest.xml文件中的<application>节点里对服务进行配置: <service android:name=".SMSService" />

赵雅智_service电话监听2加接通电话录音

步骤: 创建CallStateService继承Service 取得电话服务 监听电话动作 电话监听的对象 没有电话时 停止刻录 重设 刻录完成一定要释放资源 电话响铃时 从麦克风采集声音 内容输出格式 音频编码方式 获取sd卡目录并存入 电话接通时 开始录制 电话监听的行为 启动service 注册service并添加监听电话状态的权限 监听电话状态权限 sd卡读写权限 音频录制权限 AndroidManifest.xml <?xml version="1.0" encodin

赵雅智_android http get请求

<!-- 添加网络访问权限 --> <uses-permission android:name="android.permission.INTERNET"/> 布局文件 activity_login.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content&q

赵雅智_android使用adb命令详解附图

adb是一个客户端-服务器端程序,其中客户端是你用来操作的电脑,服务器端是android设备 我们除了用可视化窗口中操作也可以采用cmd命令行进行操作. 在开始菜单的搜索栏中输入cmd打开命令行 在本地找到adb.exe路径(如图1.1),把adb.exe拖到cmd命令行敲击回车显示所有可操作帮助示例(如图1.2). 图1.1 adb.exe路径 图1.2 adb命令示例 如果不输入adb的正确路径就不能进行正常显示,如图1.3: 图1.3adb未能正确打开 为了保证adb在任何路径下都能使用,

赵雅智_Android短信发送器

注意要点: 1)必须要在AndroidManifest.xml中添加发送短信权限<uses-permission android:name="android.permission.SEND_SMS" /> 设置视图:setContentView(R.layout.布局xml文件); 2)查找控件:findViewById(R.id.控件id); 3)监听按钮事件:控件.setOnClickListener(this),实现OnClickListener接口 4)获取edit

赵雅智_使用SQLiteDatabase提供的增删改查方法及事务

知识点详解:http://blog.csdn.net/zhaoyazhi2129/article/details/9026093 MainActivity.java,User.java,BaseDao.java,UserDao.java同上篇 http://blog.csdn.net/zhaoyazhi2129/article/details/28640195 UserDaoImple.java package com.example.android_sqlite.dao.impl; impor