`
雨打蕉叶
  • 浏览: 236083 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Android Query使用教程

 
阅读更多

在android程序设计中,很多是要要实现异步任务,缓存,获取网络数据,提交请求等需求。Android Query是Github上非常好用的一个框架,简单高效的实现了以上功能,但Android Query的强大不止这些。

AQuery允许开发人员少写/做更多。更简单的代码更易于阅读和维护。

下面的代码完成了同样的工作,但是AQuery是工作变得简洁而优雅:

通常情况下:

 

public void renderContent(Content content, View view) {
        
        
        ImageView tbView = (ImageView) view.findViewById(R.id.icon); 
        if(tbView != null){
                
                tbView.setImageBitmap(R.drawable.icon);
                tbView.setVisibility(View.VISIBLE);
                
                tbView.setOnClickListener(new OnClickListener() {
                                
                                @Override
                                public void onClick(View v) {
                                        someMethod(v);
                                }
                        });
                
        }
        
        TextView nameView = (TextView) view.findViewById(R.id.name);    
        if(nameView != null){
                nameView.setText(content.getPname());
        }
        
        TextView timeView = (TextView) view.findViewById(R.id.time);  
        
        if(timeView != null){
                long now = System.currentTimeMillis();
                timeView.setText(FormatUtility.relativeTime(now, content.getCreate()));
                timeView.setVisibility(View.VISIBLE);
        }
        
        TextView descView = (TextView) view.findViewById(R.id.desc);    
        
        if(descView != null){
                descView.setText(content.getDesc());
                descView.setVisibility(View.VISIBLE);
        }
}

 使用AQuery:

 

public void renderContent(Content content, View view) {
        
        AQuery aq = new AQuery(view);
        
        aq.id(R.id.icon).image(R.drawable.icon).visible().clicked(this, "someMethod");  
        aq.id(R.id.name).text(content.getPname());
        aq.id(R.id.time).text(FormatUtility.relativeTime(System.currentTimeMillis(), content.getCreate())).visible();
        aq.id(R.id.desc).text(content.getDesc()).visible();             
        
        
}

 异步访问网络:

AQuery时访问网络和异步任务变得非常方便,代码如下:

 

public void asyncJson(){
        
        //ajax方法的第一参数是访问的URL,第二个参数是设置返回的类型,第四个参数是调用的回调方法
        
        String url = "http://www.google.com/uds/GnewsSearch?q=Obama&v=1.0";             
        aq.ajax(url, JSONObject.class, this, "jsonCallback");
        
}
//json就是返回的数据
public void jsonCallback(String url, JSONObject json, AjaxStatus status){
        
        if(json != null){               
                //successful ajax call          
        }else{          
                //ajax error
        }
        
}
分享到:
评论
1 楼 vincent_chao 2014-02-10  
我想了解下用aquery请求网络时 怎么设置下请求时间呢 。例如5秒后没请求出数据就停止 如何设置呢?

相关推荐

    Android room 制作教程

    总之,Android Room 制作教程涵盖了从基本的Android开发环境设置,到SQLite数据库操作,再到Room库的使用和实践。通过这个教程,开发者可以深入理解Android数据持久化,并能熟练地在应用程序中集成和管理数据库。

    Android手机通讯录导入iPhone教程

    ### Android手机通讯录导入iPhone教程:详尽指南 在当今多设备共存的时代,从一款智能手机切换到另一款,尤其是在不同操作系统之间切换时,数据迁移成为了一项必要但有时令人头疼的任务。尤其对于通讯录这样的核心...

    android sqlite实例教程

    本教程将深入讲解如何在Android中使用SQLite进行基本的数据操作,包括增(添加数据)、删(删除数据)、改(修改数据)和查(查询数据)。 首先,我们创建一个SQLite数据库。在Android中,我们需要创建一个`...

    android高手进阶教程 完整版 pdf

    ### Android高手进阶教程知识点概览 #### 一、Android常用命令集锦 - **ADB命令**: ADB(Android Debug Bridge)是Android平台下用于调试的工具,它可以帮助开发者进行设备管理、应用安装与卸载等操作。 - `adb ...

    afinal 源码教程 Android框架使用

    在本教程中,我们将深入探讨Afinal的源码,了解其设计原理和使用方法。 首先,我们来看一下Afinal的核心功能: 1. **SQLite数据库操作**:Afinal提供了对SQLite数据库的简单易用的API,如增删查改等基本操作。它...

    Android SQLite 教程.doc

    Android 中的 SQLite 数据库使用 android.database.sqlite 包,提供了多种类和接口来操作数据库,包括 ContentValues、Cursor、SQLiteOpenHelper、SQLiteDatabase、SQLiteQuery 和 SQLiteStatement 等。...

    SQLite 详细教程和 ANDROID API chm格式

    这篇教程将深入探讨 SQLite 的使用以及它在 Android API 中的应用。 首先,SQLite 提供了一个 SQL 接口,使得开发者可以通过执行 SQL 语句来创建、更新、查询和删除数据库中的数据。这些基本操作包括: 1. **创建...

    android中AutoCompleteTextView使用

    本教程将详细介绍这两个控件的使用方法和常见配置。 ### 一、AutoCompleteTextView `AutoCompleteTextView` 是一个带下拉列表的文本输入框,当用户输入一部分内容后,会显示与之匹配的建议列表。其主要属性包括: ...

    Android SQLite数据库操作

    本教程将深入讲解如何在Android中进行SQLite数据库的基本操作,包括创建数据库、表的增删改查以及在数据库升级时如何保留数据。 首先,我们需要创建一个SQLiteOpenHelper的子类,这是Android提供用来管理和操作...

    Android开发系列视频教程及其实例源码地址

    使用`query()`方法查询数据。 ### 三、实际应用案例 #### 3.1 QQ登录功能实现 - **技术点**:涉及到第三方登录接口的调用、OAuth2.0授权协议的应用等。 - **实现过程**:首先集成第三方SDK,然后配置相应的参数,...

    AndroidStudio SqlLite数据库的使用

    本教程将详细介绍如何在Android Studio中使用SQLite数据库,特别是针对数据插入时已有同一条数据的更新操作。 首先,我们需要创建一个SQLite数据库。在Android Studio中,这通常通过实现`SQLiteOpenHelper`类的子类...

    无废话Android 系列教程34 [使用系统api实现SQLite增删改查&&测试]

    本教程将深入探讨如何使用系统API实现SQLite数据库的增删改查操作,并进行相关的测试。以下是对这个主题的详细讲解: 一、SQLite数据库基础 SQLite是Android系统内置的SQL数据库引擎,无需单独安装。开发者可以创建...

    C# Xamarin 史上最完整版教程 详解

    C# Xamarin 是一个强大的跨平台移动应用开发框架,它允许开发者使用C#语言和.NET框架构建原生的iOS、Android以及Windows应用。本教程将深入探讨C# Xamarin的各个方面,帮助开发者掌握创建多平台应用程序的技能。 ...

    安卓通讯录联系人打电话归属地相关-[Android项目视频教程]通讯录的开发完整代码.rar

    总结,这个教程涵盖了Android应用开发中的多个关键知识点,从基础的联系人API使用到复杂的来电归属地查询,为开发者提供了宝贵的实践经验。尽管可能需要一些调试工作,但这种动手实践的过程对提升Android开发技能...

    android之searchview

    `SearchableDictionary`是一个经典的Android开发示例,用于演示如何集成`SearchView`并使用`SearchableInfo`来实现搜索功能。这个例子通常包括创建一个`SearchableInfo`元数据,定义搜索的行为和结果处理。在`...

    Android教程05-应用编程

    创建ContentProvider需要继承`android.content.ContentProvider`类,并实现必要的方法,如`query()`, `insert()`, `update()`, `delete()`。 在实际开发中,选择合适的数据存储方式很重要。对于小量配置信息,...

    android 使用download Manager实现应用下载安装

    在这个教程中,我们将深入探讨如何使用`DownloadManager`来实现apk文件的下载和安装。 ### 1. 引入依赖 首先,确保在你的`build.gradle`(Module: app)文件中添加了对互联网权限的请求: ```xml <uses-permission ...

    Android开发教程之使用 HTML 5 开启移动 Web 应用程序的本地存储--千锋培训

    【Android开发教程之使用HTML5开启移动Web应用程序的本地存储】 HTML5的本地存储功能是其最引人注目的特性之一,它为Web开发者提供了一种有效存储大量数据的方法,从而替代了传统的Cookie存储方式。在移动应用领域...

    Learning Android Database 教材

    接下来,教程将深入SQLite在Android中的架构,介绍相关的包、SQLiteOpenHelper类、SQLiteDatabase类、rawQuery()和query()方法的使用示例,以及Cursor的使用。 之后,教程将引导用户通过实际项目学习如何使用SQLite...

    百度地图(android)

    本文将详细讲解如何在Android项目中使用百度地图SDK,并着重阐述在AndroidManifest.xml文件中配置API Key的步骤。 首先,我们要了解百度地图Android SDK的基本概念。这是一个由百度提供的开发工具包,允许开发者在...

Global site tag (gtag.js) - Google Analytics