如何让Android获得网页上的数据

如何让Android获得网页上的数据,第1张

例子来自于android学习手册,android学习手册包含9个章节,108个例子,源码文档随便看,例子都是可交互,可运行,源码采用android studio目录结构,高亮显示代码,文档都采用文档结构图显示,可以快速定位。360手机助手中下载,图标上有贝壳

//第一种

/获取参数(ArrayList<NameValuePair> nameValuePairs,String url)后post给远程服务器

将获得的返回结果(String)返回给调用者

本函数适用于查询数量较少的时候

/

public String posturl(ArrayList<NameValuePair> nameValuePairs,String url){

String result = "";

String tmp= "";

InputStream is = null;

try{

HttpClient httpclient = new DefaultHttpClient();

HttpPost httppost = new HttpPost(url);

httppostsetEntity(new UrlEncodedFormEntity(nameValuePairs));

HttpResponse response = httpclientexecute(httppost);

HttpEntity entity = responsegetEntity();

is = entitygetContent();

}catch(Exception e){

return "Fail to establish http connection!";

}

try{

BufferedReader reader = new BufferedReader(new InputStreamReader(is,"utf-8"));

StringBuilder sb = new StringBuilder();

String line = null;

while ((line = readerreadLine()) != null) {

sbappend(line + "\n");

}

isclose();

tmp=sbtoString();

}catch(Exception e){

return "Fail to convert net stream!";

}

try{

JSONArray jArray = new JSONArray(tmp);

for(int i=0;i<jArraylength();i++){

JSONObject json_data = jArraygetJSONObject(i);

Iterator<> keys=json_datakeys();

while(keyshasNext()){

result += json_datagetString(keysnext()toString());

}

}

}catch(JSONException e){

return "The URL you post is wrong!";

}

return result;

}

android读取数据库可以使用sqlite一些api进行读取,实例如下:

  / 

      查找一条数据 

      @param uid 

     /  

    public User find(Integer uid){  

        SQLiteDatabase db=dbOpenHelpergetReadableDatabase();  //创建数据库辅助类

        Cursor cursor =dbrawQuery("select  from user where uid=", new String[]{uidtoString()});  //创建一个游标

        if(cursormoveToFirst()){  //循环遍历查找数组

            int uid2=cursorgetInt(cursorgetColumnIndex("uid"));  

            String uname=cursorgetString(cursorgetColumnIndex("uname"));  

            String uaddress=cursorgetString(cursorgetColumnIndex("uaddress"));  

            User user=new User();  

            usersetUid(uid2);  

            usersetUname(uname);  

            usersetUaddress(uaddress);  

            return user;  

        }  

        cursorclose();  

        return null;  

    }

Android读写数据库代码比较多,以下为基本步骤:

创建数据库,并读写</ol>创建一个名为Test的数据库,并返回一个SQLiteDatabase对象mSQLiteDatabasemSQLiteDatabase=thisopenOrCreateDatabase("Test",MODE_PRIVATE,null);通过execSQL方法来执行一条SQL语句。String CREATE_TABLE="create table 表名(列名,列名,……)";mSQLiteDatabaseexecSQL(CREATE_TABLE);

2以使用insert方法来添加数据,但是insert方法要求把数据都打包到ContentValues中,ContentValues其实就是一个Map,Key值是字段名称,Value值是字段的值。通过ContentValues的put方法就可以把数据放到ContentValues对象中,然后插入到表中去。具体实现如下:<pre t="code" l="java">ContentValues cv=new ContentValues();

cvput(TABLE_NUM,1);

cvput(TABLE_DATA,"测试数据库数据");

mSQLiteDatabaseinsert(Test,null,cv);

//同样可以使用execSQL方法来执行一条“插入“的SQL语句

String INSERT_DATA="insert into 表名(列名,……) values (值,……)";

mSQLiteDatabaseexecSQL(INSERT_DATA);

3创建TextView对象,并赋值TextView textView = (TextView) finadViewById(RidtextView);textViewsetTextView(text);

Android 不自动提供数据库。在 Android 应用程序中使用 SQLite,必须自己创建数据库,然后创建表、索引,填充数据。Android 提供了 SQLiteOpenHelper 帮助你创建一个数据库,你只要继承 SQLiteOpenHelper 类,就可以轻松的创建数据库。SQLiteOpenHelper 类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。SQLiteOpenHelper 的子类,至少需要实现三个方法:

  构造函数,调用父类 SQLiteOpenHelper 的构造函数

  onCreate()方法;// TODO 创建数据库后,对数据库的操作

  onUpgrage()方法。// TODO 更改数据库版本的操作

  当你完成了对数据库的操作(例如你的 Activity 已经关闭),需要调用 SQLiteDatabase 的 Close() 方法来释放掉数据库连接。

  操作数据库的最佳实践是创建一个辅助类,例如联系人模块

  class ContactsDatabaseHelper extends SQLiteOpenHelper

32 Cursor类

  Android使用Cursor类返回一个需要的值,Cursor作为一个指针从数据库查询返回结果集,使用Cursor允许Android更有效地管理它们需要的行和列,你使用ContentValues对象存储键/值对,它的put()方法允许你插入不同数据类型的键值。

33 数据类型

  SQLite 和其他数据库最大的不同就是对数据类型的支持,创建一个表时,可以在 CREATE TABLE 语句中指定某列的数据类型,但是你可以把任何数据类型放入任何列中。当某个值插入数据库时,SQLite 将检查它的类型。如果该类型与关联的列不匹配,则 SQLite 会尝试将该值转换成该列的类型。如果不能转换,则该值将作为其本身具有的类型存储。比如可以把一个字符串(String)放入 INTEGER 列。SQLite 称这为“弱类型”(manifest typing)。

四、数据库操作

41创建和打开数据库

  在Android中创建和打开一个数据库都可以使用openOrCreateDatabase方法来实现,因为它会自动去检测是否存在这个数据库,如果存在则打开,如果不存在则创建一个数据库:创建成功则返回一个SQLiteDatebase对象,否则抛出异常FileNotFoundException。

下面我们来创建一个名为Test的数据库,并返回一个SQLiteDatabase对象mSQLiteDatabase。

mSQLiteDatabase=thisopenOrCreateDatabase("Test",MODE_PRIVATE,null);

42创建表

  通过execSQL方法来执行一条SQL语句。

String CREATE_TABLE="create table 表名(列名,列名,……)";

mSQLiteDatabaseexecSQL(CREATE_TABLE);

  创建表的时候总要确定一个主键,这个字段是64位整型,别名_rowid。其特点就是自增长功能。当到达最大值时,会搜索该字段未使用的值(某些记录被删除_rowid会被回收),所以要唯一严格增长的自动主键必须加入关键字autoincrement。

43删除表

mSQLiteDatabase("drop table 表名");

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何让Android获得网页上的数据

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情