实现正在加载中界面的Android库:DynamicBox
DynamicBox是一个Android库,能够inflates自定义布局来指示出:
- 正在加载内容
- 显示一个异常
- 或者是一个自定义视图
ListViewGridViewExpandableListViewActivityFragmentActivityFragmentLinearLayoutRelativeLayoutScrollView
示例 (控件和布局的布局文件或ID赋值方式)
- View
ListView lv = (ListView)findViewById(R.id.listView); DynamicBox box = new DynamicBox(this,lv);
- Layout id
DynamicBox box = new DynamicBox(this,R.layout.activity_activity);
To Show the loading View
box.showLoadingLayout(); //显示加载视图
To Show Internet off View
box.showInternetOffLayout();
To Show Exception View
box.showExceptionLayout();//显示如果没有加载到时的界面
To Show a Custom View
View customView = getLayoutInflater().inflate(R.layout.custom_view, null, false);
box.addCustomView(customView,"greenmonster"); box.showCustomView("greenmonster");
**To set Loading Message **
box.setLoadingMessage("Loading your music ...");
DynamicBox box ;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
pojo = new HouseConditionsPojo(); box = new DynamicBox(this,R.layout.house_jj_list_activity); box.setLoadingMessage("Loading content...");
box.setOtherExceptionTitle("Error");
box.setOtherExceptionMessage("An error has occurred while fetching data, please try again ...");
box.setClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ini(); // 访问网络,成功的时候初始化控件
}
});
ini();
}
private void ini() {
box.showLoadingLayout(); //显示加载中的画面
AsyncHttpClientTool.SearchJJHouses(pojo, new AsyncReturn() {
@Override
public void onSuccess(String arg0) {
box.hideAll(); // 关闭加载中动画
try {
init(); //注册控件 控件赋值的呢过
} catch (Exception e) {
e.printStackTrace();
}
super.onSuccess(arg0);
}
@Override
public void onFailure(Throwable arg0) {
box.showExceptionLayout(); //调用访问失败的界面
super.onFailure(arg0);
}
});
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listview); //加载布局文件
ListView lv = (ListView)findViewById(R.id.listView); //布局中用来替换的控件
// Setup by Box
box = new DynamicBox(this,lv); // or new DynamicBox(this,R.id.listView)
box.setLoadingMessage("Loading your music ...");
//自定义控件用来替换布局中的替换控件
View emptyCollectionView = getLayoutInflater().inflate(R.layout.activity_listview, null, false);
box.addCustomView(emptyCollectionView,"music_not_found");
box.setClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getApplicationContext(), "Retry button clicked :)", Toast.LENGTH_SHORT).show();
}
});
box.showLoadingLayout();
new Handler().postDelayed(new Runnable() {
public void run() {
// box.showCustomView("music_not_found"); //当数据获取成功时,展示正确的界面
box.showExceptionLayout();//当数据获取失败时,显示加载失败的界面
}
}, 2000);
}
实现正在加载中界面的Android库:DynamicBox的更多相关文章
- 漂亮的Android加载中动画:AVLoadingIndicatorView
AVLoadingIndicatorView 包含一组漂亮的Android加载中动画. IOS版本:here. 示例 Download Apk 用法 步骤1 Add dependencies in b ...
- 【转载】一行代码加载网络图片到ImageView——Android Picasso
原文链接:一句代码加载网络图片到ImageView——Android Picasso 注意:此处使用下面代码需要先配置一下gradle,下载所需包. 具体操作如下图: compile 'com.sq ...
- Navicat操作数据库时一直显示加载中
用Navicat for mysql操作mysql数据库,其中一个表怎么也打不开,一直加载,还不能关闭.从网上搜索原因,主要是以下几个原因:原因一:表死锁,会出现这样的情况,锁不释放,无论多久都读取不 ...
- 使用Bootstrap3和Ladda UI实现的多种按钮“加载中”效果体验
在线演示 在线演示 大家在开发基于web的网站或者web应用中,常常在AJAX调用的过程中需要提示用户并且展示相关的“加载中”效果,类似的UI设计也非常多,比如,当点击一个按钮后,在它的旁边显示一个 ...
- adnroid 自定义ProgressDialog加载中
用来记录自己所用到的知识 前两天在做项目的时候发现有时候在访问网络数据的时候由于后台要做的工作较多,给我们返回数据的时间较长,所以老大叫我加了一个加载中的logo图用来提高用户体验. 于是就在网上找了 ...
- css3动画-加载中...
写几个简单的加载中动画吧. 像前面三种都是相当于几个不同的点轮流来播放同一动画:变大变小.css3里面有一个用于尺度变换的方法:scale(x,y):定义 2D 缩放转换,改变元素的宽度和高度. 第四 ...
- WebView 一直展示加载中。。。
webview加载html5页面总是一直在加载中,加载很慢或干脆加载不出来, 听浏览器的大牛说可能是 js导致的,尝试在onpause里加入mWebView.pauseTimers(), onResu ...
- JQuery插件:遮罩+数据加载中。。。(特点:遮你想遮,罩你想罩)
在很多项目中都会涉及到数据加载.数据加载有时可能会是2-3秒,为了给一个友好的提示,一般都会给一个[数据加载中...]的提示.今天就做了一个这样的提示框. 先去jQuery官网看看怎么写jQuery插 ...
- jquery mobile 请求数据方法执行时显示加载中提示框
在jquery mobile开发中,经常需要调用ajax方法,异步获取数据,如果异步获取数据方法由于网速等等的原因,会有一个反应时间,如果能在点击按钮后数据处理期间,给一个正在加载的提示,客户体验会更 ...
随机推荐
- mysql 服务意外停止1067错误解决办法小结
今天在配置服务器时安装mysql5.5总是无法安装,查看日志错误提示为1067错误,下面来看我的解决办法 事件类型: 错误 事件来源: Service Control Manager 事件种类: 无 ...
- lambda -- Java 8 find first element by predicate
Java 8 find first element by predicate up vote6down votefavorite I've just started playing with ...
- 汇编学习笔记(11)int指令和端口
格式 int指令也是一种内中断指令,int指令的格式为int n,n是中断类型码.也就是说,使用int指令可以调用任意的中断例程,例如我们可以显示的调用0号中断例程,还记得在汇编学习笔记(10)中我们 ...
- Google生活
本博文的主要内容有 .Google生活的介绍 1.Google生活的介绍 Google生活搜索的官网: http://shenghuo.google.cn/shenghuo/ http://sheng ...
- hdoj 1276 士兵队列训练问题【模拟】
士兵队列训练问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ...
- 基于TCP/IP的Matlab Modbus与M340 PLC通讯
本人原创,代码拿出来供大家交流学习经验,勿作他用. 废话不多说,代码直接上. 1.创建链接 function link = connect_create(client_addr,port) %**** ...
- 【题解】警位安排( 树形 DP)
[题目描述]一个重要的基地被分成了 n 个连通的区域 , 出于某种原因 , 这个基地以某一个区域为核心,呈一树形分布.在每个区域里安排警卫的费用是不同的,而每个区域的警卫都可以望见其相邻的区域 .如果 ...
- [IOS开发进阶与实战]第一天:CoreData的运行机制
1.数据模型NSManagedObjectModel的建立 1.- (NSManagedObjectModel *)managedObjectModel { if (_managedObjectMod ...
- servlet清晰理解
servlet介绍 Servlet看起来像是通常的Java程序.它是JSP的前身,在MVC架构中担任Controller的角色,即控制层.主要进行数据的处理操作和流程的控制,并将有关结果存储到Java ...
- 使用Morphia框架操作mongodb
1. mac 下 安装mongodb sudo brew update sudo brew install mongodb sudo brew services mongodb start 2. ...