Android热身:通过网络获取资源并更新UI组件 目标 点击"发送请求"按钮,下载某网页的html源码,并显示在TextView控件上:点击"清空",清除TextView控件上的内容 效果图: 要点 开启网络权限 网络请求独立为一个模块 按钮点击事件的监听器 新开线程进行网络请求调用 用handler更新UI组件 源码 //MainActivity.java 主程序 package com.example.chris.handlerdemo; import and…
[Android线程机制] 出于性能考虑,Android的UI操作并不是线程安全的,这就意味着如果有多个线程并发操作UI组件,可能导致线程安全问题.为了解决这个问题,Android制定了一条简单的规则:只允许UI线程修改Activity里的UI组件 当一个程序第一次启动时,Android会同时启动一条主线程(Main Thread),主线程主要负责处理与UI相关的事件,如用户的按键事件,用户接触屏幕的事件及屏幕绘图事件,并把相关的事件分发到对应的组件进行处理.所以主线程通常又被叫做UI线程 [H…
[Android线程机制] 出于性能考虑,Android的UI操作并不是线程安全的,这就意味着如果有多个线程并发操作UI组件,可能导致线程安全问题.为了解决这个问题,Android制定了一条简单的规则:只允许UI线程修改Activity里的UI组件 当一个程序第一次启动时,Android会同时启动一条主线程(Main Thread),主线程主要负责处理与UI相关的事件,如用户的按键事件,用户接触屏幕的事件及屏幕绘图事件,并把相关的事件分发到对应的组件进行处理.所以主线程通常又被叫做UI线程 [H…
上一篇文章说的是ListView展示本地的图片以及文本,这一篇说一下如何从网络获取图片以及文本来显示.事实上,一般是先获取Josn或sml数据,然后解释显示.我们先从网上获取xml,然后对其进行解析,最后显示在ListView上.具体步骤: 客户端发出请求,获取xml 客户端异步解析xml ListView将解析完的数据显示 一.Android客户端 (1)xml布局文件         mainxml,就是一个ListView. <?xml version="1.0" enco…
原演示地址 本文内容 环境 演示 LazyList 从网络获取图片并缓存 参考资料 本文是 Github 上的一个演示,通过网络获取歌手专辑的缩略图,并显示在 ListView 控件中.该演示具备将缩略图缓存到手机外存的功能,所以叫"Lazy",这样就不用每次都通过网络重新获取.在学习这个演示前,希望你对 Android 的 Adpater 相关有一定的了解. 该演示仅仅是获得缩略图,但在另一篇文章中,另一个作者根据这个 LazyList,又做了一个相对完整的演示(包括歌曲名称.歌手名…
在将自己写的工具打成.jar包的时候,有时候会需要引用到res中的资源,这时候不能将资源一起打包,只能通过反射机制动态的获取资源. /** * 反射得到组件的id号 */ public static int getCompentID(String packageName, String className,String idName) { int id = 0; try { Class<?> cls = Class.forName(packageName + ".R$" +…
方法一:(java习惯,在android不推荐使用) 刚刚开始接触android线程编程的时候,习惯好像java一样,试图用下面的代码解决问题 new Thread( new Runnable() { public void run() { myView.invalidate(); } }).start(); 可以实现功能,刷新UI界面.但是这样是不行的,因为它违背了单线程模型:Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行. 方法二:(Thread+Handler)…
Vue 资源典藏,包括:UI组件 开发框架 服务端 辅助工具 应用实例 Demo示例 element ★11612 - 饿了么出品的Vue2的web UI工具套件 Vux ★7503 - 基于Vue和WeUI的组件库 iview ★5801 - 基于 Vuejs 的开源 UI 组件库 mint-ui ★5517 - Vue 2的移动UI元素 vue-material ★2790 - 通过Vue Material和Vue 2建立精美的app应用 muse-ui ★2611 - 三端样式一致的响应式…
1:activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent&quo…
1:activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent&quo…
package com.cp.utils; import android.content.Context; public class CPResourceUtil { public static int getLayoutId(Context paramContext, String paramString) { return paramContext.getResources().getIdentifier(paramString, "layout", paramContext.ge…
1.常用方法public int getResId(String name,Context context){ Resources r = context.getResources(); int id = r.getIdentifier(name,"drawable","com.demo"); return id; } 2.使用反射(推荐,性能高)public class ResourceMan { public static int getResId(String…
1.先加载cocostudio导出的json文件,代码如下所示: var dong = ccs.load("res/Login.json"); //_login.setPosition(size.width/2,size.height/2); //_login.setTag(10000); this.addChild(dong.node); 2.通过名字来获取组件,代码如下所示: var _login = ccui.helper.seekWidgetByName(dong.node,&…
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4004983.html [系列]Android系列之网络:(持续更新) Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据) Android系列之网络(二)----HTTP请求头与响应头 Android系列之网络(三)----使用HttpClien…
使用getIdentifier()获取资源Id Android中可以使用getIdentifier()获取资源ID ex: 根据图片名称获取图片Id private int getImageResId(String imageName) { int resID = getResources().getIdentifier(imageName, "drawable", "com.xxxxxx"); return resID; } (注意,imageName不需要有后缀…
​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4006009.html [系列]Android系列之网络:(持续更新) Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据) Android系列之网络(二)----HTTP请求头与响应头 Android系列之网络(三)----使用HttpClie…
​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4005034.html [系列]Android系列之网络:(持续更新) Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据) Android系列之网络(二)----HTTP请求头与响应头 Android系列之网络(三)----使用HttpClie…
此最近看了网上,在子线程更新UI的方法,说法很多,但都不是很全面.在此我争取做到总结的全面一些,希望以后对自己,对大家都有一些帮助. 方法一: view.post(Runnable action) 假如该方法是在子线程中 textView.post(new Runnable() { @Override public void run() { textView.setText("更新textView"); //还可以更新其他的控件 imageView.setBackgroundResou…
版权声明:本文为博主原创文章,转载请注明出处:https://i.cnblogs.com/EditPosts.aspx?postid=6121280 消息机制,对于Android开发者来说,应该是非常熟悉.对于处理有着大量交互的场景,采用消息机制,是再好不过了.有些特殊的场景,比如我们都知道,在Android开发中,子线程不能更新UI,而主线程又不能进行耗时操作,一种常用的处理方法就是,在子线程中进行耗时操作,完成之后发送消息,通知主线程更新UI.或者使用异步任务,异步任务的实质也是对消息机制的…
MainActivity如下: package cc.testui2; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; import android.app.Activity; /** * Demo描述: * 在子线程中更改UI的方式二…
MainActivity如下: package cc.testui1; import android.os.Bundle; import android.os.Handler; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; import android.app.Activity; /*…
由于Android中不能在子线程中更新ui,所以平时在子线程中需要更新ui时可以使用Android提供的RunOnUiThread接口,但是最近在写联网工具类的时候,有时候会出现联网异常,这个时候为了提高用户体验,最好将问题toast出来让用户知道时哪里出了错误,但是问题来了,RunOnUiThread只能在activity中使用,工具类好像与他无缘,于是又各种上网查资料,没有找到直接答案,但是在一篇博客中看到传context的时候突然想到既然context都能通过参数传到工具类里面,activ…
UI 只能在主线程内更新,子线程需要更新UI组件时可以这样: fun fuck(){ Executors.newSingleThreadExecutor().execute{ // url request ... val visibility = View.VISIBLE Handler(mainLooper).post { val btn = findViewById<Button>(R.id.button) btn.visibility = visibility } } Thread{ p…
本文内容 环境 项目结构 测试数据 演示 1:SimpleAdapter 演示 2:BaseAdapter 演示 3:CustomLazyList 演示 4:CustomLazyCompleteList 本文主要给出演示的概要,只贴出核心代码,主要是自己下载调试一下,点击此处下载. 本文通过四个示例,循序渐进地演示,将歌曲列表加载到 ListView 控件,歌曲列表,包括缩略图.歌手名.歌曲名等信息,或存放在本地,或以 JSON 形式存放在网络. 下载最新 Demo v.3.0 环境 Windo…
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4488049.html 联系方式:smyhvae@163.com 效果图:(gif图太大了,有点卡,建议将图片保存到本地查看或者直接本文末尾的源码查看gif图) 加载网络图片我们用universal-image-loader,然后实现ListView的上拉下拉刷新我们用PullToRefresh.下…
  打开这个网址(LINK)就可以看到adt的详细信息. 或者直接在你的eclipse的Help > Install New Software里面add,地址直接输入 https://dl-ssl.google.com/android/eclipse/ https://dl-ssl.google.com/android/eclipse/ 到Android SDK官网下载ADT离线升级包 http://developer.android.com/sdk/installing/installing-…
写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:http://www.cnblogs.com/acm-icpcer/p/8521625.html   最近尝试了一下使用tomcat把自己的笔记本作为项目的服务器. tomcat下载:https://tomcat.apache.org/download-90.cgi 当然啦,你可以选择点击zip进行免安…
当我们获取网络数据的时候,解析之后往往都是一个字符串,而不是资源id,所有我们没有办法直接使用,只能通过名称来获取到资源id, package com.example.administrator.demo; import android.content.Context; /** * Created by Administrator on 2017/8/27 0027. */ public class GetResourcesUtils{ /** * 获取资源文件的id * * @param co…
http://mirrors.neusoft.edu.cn/eclipse/releases/luna/打开这个网址就可以看到adt的详细信息:  http://developer.android.com/sdk/installing/installing-adt.html 或者直接在你的eclipse的Help > Install New Software里面add,地址直接输入 https://dl-ssl.google.com/android/eclipse/https://dl-ssl.…
http://mirrors.neusoft.edu.cn/eclipse/releases/luna/打开这个网址就可以看到adt的详细信息:  http://developer.android.com/sdk/installing/installing-adt.html 或者直接在你的eclipse的Help > Install New Software里面add,地址直接输入 https://dl-ssl.google.com/android/eclipse/https://dl-ssl.…