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
        }
        
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLite 是一种轻量级的关系型数据库,非常适合在移动设备上使用。在 Android 应用中,我们可以使用 SQLite 来存储和管理数据。以下是使用 SQLite 的基本步骤: 1. 创建数据库 在 Android 应用中,我们可以通过继承 SQLiteOpenHelper 类来创建和管理数据库。在继承类中,我们需要实现 onCreate() 和 onUpgrade() 方法。onCreate() 方法用于创建数据库,onUpgrade() 方法用于升级数据库。 以下是一个简单的 SQLiteOpenHelper 子类的示例: ``` public class DBHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "mydb.db"; private static final int DATABASE_VERSION = 1; public DBHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE IF NOT EXISTS mytable (_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS mytable"); onCreate(db); } } ``` 在这个示例中,我们创建了一个名为“mydb.db”的数据库,并创建了一个名为“mytable”的表。 2. 插入数据 要向表中插入数据,我们需要获取一个可写的 SQLiteDatabase 对象,并使用 insert() 方法。 以下是一个向“mytable”表中插入数据的示例: ``` DBHelper dbHelper = new DBHelper(context); SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("name", "Alice"); values.put("age", 25); long newRowId = db.insert("mytable", null, values); ``` 在这个示例中,我们创建了一个 ContentValues 对象,用于存储要插入的数据。然后,我们调用 insert() 方法将数据插入到“mytable”表中,并将返回的行 ID 存储到 newRowId 变量中。 3. 查询数据 要从表中查询数据,我们需要获取一个可读的 SQLiteDatabase 对象,并使用 query() 方法。 以下是一个从“mytable”表中查询数据的示例: ``` DBHelper dbHelper = new DBHelper(context); SQLiteDatabase db = dbHelper.getReadableDatabase(); String[] projection = {"_id", "name", "age"}; Cursor cursor = db.query( "mytable", projection, null, null, null, null, null ); while (cursor.moveToNext()) { long id = cursor.getLong(cursor.getColumnIndexOrThrow("_id")); String name = cursor.getString(cursor.getColumnIndexOrThrow("name")); int age = cursor.getInt(cursor.getColumnIndexOrThrow("age")); } ``` 在这个示例中,我们创建了一个包含要查询的列名的 projection 数组。然后,我们调用 query() 方法,将“mytable”表作为参数传递,并传递 null 值作为条件、分组、排序等参数。query() 方法将返回一个 Cursor 对象,我们可以使用它来遍历查询结果。 4. 更新数据 要更新表中的数据,我们需要获取一个可写的 SQLiteDatabase 对象,并使用 update() 方法。 以下是一个更新“mytable”表中数据的示例: ``` DBHelper dbHelper = new DBHelper(context); SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("name", "Bob"); values.put("age", 30); String selection = "_id = ?"; String[] selectionArgs = { "1" }; int count = db.update("mytable", values, selection, selectionArgs); ``` 在这个示例中,我们创建了一个 ContentValues 对象,用于存储要更新的数据。然后,我们调用 update() 方法将数据更新到“mytable”表中,并将返回值存储到 count 变量中。 5. 删除数据 要从表中删除数据,我们需要获取一个可写的 SQLiteDatabase 对象,并使用 delete() 方法。 以下是一个从“mytable”表中删除数据的示例: ``` DBHelper dbHelper = new DBHelper(context); SQLiteDatabase db = dbHelper.getWritableDatabase(); String selection = "_id = ?"; String[] selectionArgs = { "1" }; int count = db.delete("mytable", selection, selectionArgs); ``` 在这个示例中,我们调用 delete() 方法从“mytable”表中删除数据,并将返回值存储到 count 变量中。 这些是使用 SQLite 在 Android 应用中存储和管理数据的基本步骤。您可以根据自己的需求和应用程序的规模进行更多的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值