Android——登陆界面的异步实现
来源:互联网 发布:大数据 hadoop 配置 编辑:程序博客网 时间:2024/06/05 10:51
public class MainActivity extends BaseActivity { private String path; String userText; String passText; @InjectView(R.id.login_btn) Button login_btn; @InjectView(R.id.ft_username) EditText ft_username; @InjectView(R.id.ft_password) EditText ft_password; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);// 登陆 login_btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { userText = ft_username.getText().toString().trim(); passText = ft_password.getText().toString().trim(); new LoginTask(MainActivity.this, userText, passText).execute(); } }); } class LoginTask extends AsyncTask<Void, String, Boolean> { private Context context; private String userText; private String passText; public LoginTask(Context context, String userText, String passText) { this.context = context; this.userText = userText; this.passText = passText; } /** * 运行在UI线程中,在调用doInBackground()之前执行 */ @Override protected void onPreExecute() { path = "http://106.120.172.113:8080/ftyy/login/loginAction!applogin.dhtml?userName=" + userText + "&password=" + passText; } /** * 后台运行的方法,可以运行非UI线程,可以执行耗时的方法 */ @Override protected Boolean doInBackground(Void... params) { Map<String, String> map = new HashMap<String, String>(); // 通过HttpUrlConnection发送GET请求 try { URL url = new URL(path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setConnectTimeout(5000); conn.setRequestMethod("GET"); int code = conn.getResponseCode(); if (code == 200) { InputStream is = conn.getInputStream(); String msg = streamToString(is); map = parseJsonStr(msg); Boolean status = map.get("msg").equals("登录成功"); // Toast.makeText(MainActivity.this, "insert success", Toast.LENGTH_LONG).show(); return status; }else{ return false; } } catch (Exception e) { e.printStackTrace(); return false; } } /** * 运行在ui线程中,在doInBackground()执行完毕后执行 */ @Override protected void onPostExecute(Boolean flag) { if (flag) { Toast.makeText(MainActivity.this, "登陆成功", Toast.LENGTH_SHORT).show(); //跳转到主界面 Intent intent = new Intent(MainActivity.this, MainUI.class); context.startActivity(intent); } else { Toast.makeText(MainActivity.this, "登陆失败,请重新登陆", Toast.LENGTH_SHORT).show(); } } public String streamToString(InputStream is) { ByteArrayOutputStream baos = null; try { baos = new ByteArrayOutputStream();//此类实现了一个输出流,其中的数据被写入一个 byte 数组。 byte[] buffer = new byte[1024]; int len = 0; while ((len = is.read(buffer)) != -1) { baos.write(buffer, 0, len); } byte[] byteArray = baos.toByteArray();//创建一个新分配的byte数组 return new String(byteArray); } catch (Exception e) { return null; }finally { if(baos==null){ try { baos.close(); } catch (IOException e) { e.printStackTrace(); } } if(is==null){ try { is.close(); } catch (IOException e) { e.printStackTrace(); } } } } public Map<String, String> parseJsonStr(String jsonStr) { return JSON.parseObject(jsonStr, new TypeReference<Map<String, String>>() { }); } }}
0 0
- Android——登陆界面的异步实现
- android的登陆界面实现
- Android学习笔记(19)————实现一个记住密码的Android登陆界面
- Android学习笔记(19)————实现一个记住密码的Android登陆界面 .
- Android学习笔记(一)——仿qq聊天的welcome界面登陆的实现
- Android实现登陆界面动画
- Android实现一个记住密码的登陆界面
- android实现仿QQ登陆界面的多账号保存
- 实现一个记住密码的Android登陆界面
- Android实现一个记住密码的登陆界面
- Android实现一个记住密码的登陆界面
- Android实现一个记住密码的登陆界面
- Android通过SharedPreferences实现记住密码的登陆界面
- Android实现一个记住密码的登陆界面
- android实现仿QQ登陆界面的多账号保存
- Android实现一个记住密码的登陆界面
- android实现仿QQ登陆界面的多账号保存
- 08、Android开发基础之QQ登陆界面的实现
- SAT数学统计学部分7大运算解析
- AsyncHttpClient
- 栈
- 怎样可以通过读trail文件得出OGG使用啥sql 同步数据的
- 系统tabBar隐藏出现白条
- Android——登陆界面的异步实现
- Android问题集锦之四十二:INSTALL_FAILED_OLDER_SDK
- 剑指offer 14 - 调整数据顺序使奇数位于偶数前面
- MacOS X编译OpenSceneGraph
- JNDI 是什么
- Oracle连接问题
- AppCan&西游汇“移动互联网创业者技术沙龙” (重庆站)
- 各类竞拍网如何选择适用的?
- 根据URL获取图像的常用配置(gbrowse)