当前位置: 首页 > news >正文

重庆云阳网站建设报价扬州seo

重庆云阳网站建设报价,扬州seo,汕头市建设局网站首页,网站的开发费用吗前面一节中已经为Starbuzz创建了一个SQLite帮助器。 目前还是从Java Drink类获取数据#xff0c;这时候要修改这个应用从SQLite数据库获取数据。 本文所有代码均存放于 https://github.com/MADMAX110/Starbuzz 一、修改DrinkActivity来使用Starbuzz数据库 基本步骤#xff…前面一节中已经为Starbuzz创建了一个SQLite帮助器。 目前还是从Java Drink类获取数据这时候要修改这个应用从SQLite数据库获取数据。 本文所有代码均存放于 https://github.com/MADMAX110/Starbuzz 一、修改DrinkActivity来使用Starbuzz数据库 基本步骤 1、得到Starbuzz数据库的一个引用 2、创建一个游标从数据库读取数据 3、导航到饮料记录 4、在DrinkActiviy中显示饮料的详细信息 1、得到数据库引用 首先需要用上一章创建的SQLite帮助器得到Starbuzz数据库的一个引用。为此我们先要得到SQLite帮助器的一个引用。 SQLiteOpenHelper starbuzzDatabaseHelper new StarbuzzDatabaseHelper(this);然后调用SQLite帮助器的getReadableDatabase() 或getWriteableDatabase() 得到数据库一个引用。前者只读后者可以进行更新。这两者都会返回一个SQLiteDatabase对象可以用来访问数据库。 SQLiteDatabase db starbuzzDatabaseHelper.getReadableDatabase();SQLiteDatabase db starbuzzDatabaseHelper.getWritableDatabase();如果Android没能得到数据库的一个引用会抛出一个SQLiteExeception异常。例如如果调用getWriteableDatabase来读写数据库但是由于磁盘已满而无法写入数据库就会发生这种情况。 如果得到异常就可以使用一个Toast一个弹出式消息告诉用户这个消息不可用。 得到数据库的一个引用后就可以使用游标从数据库中获取数据了。 2、用游标从数据库获取数据 创建游标 Cursor cursor db.query(...);最简单的数据库查询是从一个数据库的一个表中返回所有记录 第一个参数是表名第二个参数表示想要返回这些列中的值如果想要返回一个表中的所有记录将这些参数设置为null。 Cursor cursor db.query(DRINK, new String[]{_id, NAME, DESCRIPTION}, null, null, null, null, null);默认情况下表中数据按_id的顺序显示这是因为输入数据时的顺序。如果希望按NAME的升序顺序可以使用以下代码。 Cursor cursor db.query(DRINK, new String[]{_id, NAME, DESCRIPTION}, null, null, null, null, null, NAME ASC);ASC关键字表示你希望按升序对这一列排序。默认的都会按升序队列排序所以也可以省略ASC倘若要以降序排序则要使用DESC。 还可以对多个列进行排序例如对FAVORITE降序排列然后对NAME按升序排列。 Cursor cursor db.query(DRINK, new String[]{_id, NAME, DESCRIPTION}, null, null, null, null, null, FAVORITE DESC, NAME);为数据设置过滤条件返回特定的记录例如返回DRINK列表中饮料名为Lattle的记录 Cursor cursor db.query(DRINK, new String[]{_id, NAME, DESCRIPTION}, NAME ?, new String[] {Lattle}, null, null, null);或是DRINK列表中_id为1的记录 Cursor cursor db.query(DRINK, new String[]{_id, NAME, DESCRIPTION}, _id ?, new String[] {Integer.toString(1)}, null, null, null);3、导航到游标记录 要从一个游标获取某个特定记录的值首先要导航到这个记录。 游标主要有4个方法这些方法分别是moveToFirst、moveToLast、moveToPrevious、moveToNext。 要返回游标的第一个记录可以使用moveToFirst方法如果发现一个记录这个方法就会返回一个true值。如果游标未返回任何记录就会返回false。 if (cursor.moveToFirst()){ }同理、moveToLast是返回游标最后一个记录moveToPrevious是前一个记录moveToNext是后一个记录。 4、获取游标值 从第0列获取字符串从第2列获取数值。 String name cursor.getString(0); int imageRes cursor.getInt(2);最后关闭游标和数据库。 cursor.close(); db.close();完整的DrinkActivity代码 package com.hfad.starbuzz;import androidx.appcompat.app.AppCompatActivity;import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.os.Bundle; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast;public class DrinkActivity extends AppCompatActivity {public static final String EXTRA_DRINKID drinkId;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_drink);int drinkId (Integer)getIntent().getExtras().get(EXTRA_DRINKID);SQLiteOpenHelper starbuzzDatabaseHelper new StarbuzzDatabaseHelper(this);try {SQLiteDatabase db starbuzzDatabaseHelper.getReadableDatabase();Cursor cursor db.query(DRINK,new String[]{NAME, DESCRIPTION, IMAGE_RESOURCE_ID},_id ?,new String[] {Integer.toString(drinkId)},null, null, null);if (cursor.moveToFirst()) {String nameText cursor.getString(0);String descriptionText cursor.getString(1);int photoId cursor.getInt(2);TextView name (TextView) findViewById(R.id.name);name.setText(nameText);TextView description (TextView) findViewById(R.id.description);description.setText(descriptionText);ImageView photo (ImageView) findViewById(R.id.photo);photo.setImageResource(photoId);photo.setContentDescription(nameText);}cursor.close();db.close();}catch (SQLException e){Toast toast Toast.makeText(this,Database unavailable,Toast.LENGTH_SHORT);toast.show();}} }二、修改DrinkCategoryActivity来使用Starbuzz数据库 这里的步骤与之前的有所不同因为这里要显示一个列表视图它使用饮料数据作为它的数据源。我们要把这个数据的数据源转换为Starbuzz数据库 1、创建一个游标从数据库读取饮料数据。 2、将列表视图的数组适配器替换为一个游标适配器。 第一步与之前的一样这里需要做的是替换列表视图中的数组数据。 简单游标适配器 原理 1、列表视图向适配器请求数据 2、适配器向游标请求数据库中的数据 3、适配器向列表视图返回数据 使用简单游标适配器的做法与使用数组适配器很类似要初始化适配器然后把它关联到列表视图。 SimpleCursorAdapter listAdapter new SimpleCursorAdapter(this , //当前活动android.R.layout.simple_list_item_1,//在列表视图中对应每一行显示一个值cursor,//这是游标new String[]{NAME},//使用游标的哪些列new int[]{android.R.id.text1},//希望在那些视图中显示这些数据0);//用来确定游标的行为通常为0这是默认值也可以注册一个内容观察器listDrinks.setAdapter(listAdapter);修改后的DrinkCategoryActivity代码 package com.hfad.starbuzz;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.SimpleCursorAdapter; import android.widget.Toast;public class DrinkCategoryActivity extends AppCompatActivity {private SQLiteDatabase db;private Cursor cursor;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_drink_category);ListView listDrinks (ListView) findViewById(R.id.list_drinks);SQLiteOpenHelper starbuzzDatabaseHelper new StarbuzzDatabaseHelper(this);try {db starbuzzDatabaseHelper.getReadableDatabase();cursor db.query(DRINK,new String[]{_id, NAME},null, null, null, null, null);SimpleCursorAdapter listAdapter new SimpleCursorAdapter(this , //当前活动android.R.layout.simple_list_item_1,//在列表视图中对应每一行显示一个值cursor,//这是游标new String[]{NAME},//使用游标的哪些列new int[]{android.R.id.text1},//希望在那些视图中显示这些数据0);//用来确定游标的行为通常为0这是默认值也可以注册一个内容观察器listDrinks.setAdapter(listAdapter);}catch(SQLException e){Toast toast Toast.makeText(this, Database unavailable, Toast.LENGTH_SHORT);toast.show();}AdapterView.OnItemClickListener itemClickListener new AdapterView.OnItemClickListener() {Overridepublic void onItemClick(AdapterView? parent, View view, int position, long id) {if (position 0) {Intent intent new Intent(DrinkCategoryActivity.this, DrinkCategoryActivity.class);startActivity(intent);}Intent intent new Intent(DrinkCategoryActivity.this, DrinkActivity.class);//向意图增加所单击列表项的ID第一个参数表示使用这个常量名表示意图中的额外信息名//这样就能知道DrinkCategoryActivity和DrinkActivity在使用同一个字符串//创建DrinkActivity活动时要增加这个常量。intent.putExtra(DrinkActivity.EXTRA_DRINKID, (int)id);startActivity(intent);}};listDrinks.setOnItemClickListener(itemClickListener);}Overrideprotected void onDestroy() {super.onDestroy();cursor.close();db.close();} }
http://www.sczhlp.com/news/206493/

相关文章:

  • 建设银行打印回单网站广州企业名录
  • 乐清网络科技有限公司手机端网站优化排名seo推广
  • 一般网站开发用什么语言wordpress4.9.8中文版
  • 塑胶托盘东莞网站建设站长统计app软件
  • 小榄做网站h5手机制作软件app有哪些
  • 有网站吗给一个品牌设计公司是做什么的
  • php网站后台登陆地址高端建站是什么意思
  • 网站广审怎么做网上商城系统模板
  • 网站怎样免费推广太原做app网站建设
  • 廊坊网站快照优化公司ppt做会动彩字网站
  • 东莞网站设计多少钱公司网站上传文章
  • 品牌设计网站有哪些小程序++wordpress
  • 傻瓜化免费自助建站html语言
  • 网站开发需要什么专业的人才维护网站是什么意思
  • 余姚做百度网站建设中国能建招商平台
  • 顺义网站建设哪家好企业管理咨询考试题及答案
  • 免费行情网站大全专业建设思路
  • 金方时代做网站怎么样湖南省做网站的
  • 有哪些学校的网站做的好兰州网络seo
  • 网站不足网站开发所需人员
  • 永州网站建设奉贤网站建设哪家好
  • 淘宝网网站设计分析太原北京网站建设公司
  • 手机网站模板尺寸重庆建设医院官方网站
  • 网站做多个产品容县建设工程交易中心网站
  • 网站图文列表东莞招聘网有哪些比较好
  • 大淘客做网站视频山西门户网站建设
  • 中山网站运营番禺做网站报价
  • 我们公司想做个网站装修公司名字大全参考
  • 绵阳 网站 建设北京市建设局网站首页
  • 建设证件查询官方网站手机wap