96SEO 2026-02-20 10:05 0
Drink类获取数据#xff0c;这时候要修改这个应用从SQLite数据库获取数据。

https://github.com/MADMAX110/Starbuzz
一、修改DrinkActivity来使用Starbuzz数据库
基本步骤#xff…前面一节中已经为Starbuzz创建了一个SQLite帮助器。
Drink类获取数据这时候要修改这个应用从SQLite数据库获取数据。
https://github.com/MADMAX110/Starbuzz
一、修改DrinkActivity来使用Starbuzz数据库
首先需要用上一章创建的SQLite帮助器得到Starbuzz数据库的一个引用。
为此我们先要得到SQLite帮助器的一个引用。
StarbuzzDatabaseHelper(this);然后调用SQLite帮助器的getReadableDatabase()
得到数据库一个引用。
前者只读后者可以进行更新。
这两者都会返回一个SQLiteDatabase对象可以用来访问数据库。
starbuzzDatabaseHelper.getReadableDatabase();SQLiteDatabase
starbuzzDatabaseHelper.getWritableDatabase();如果Android没能得到数据库的一个引用会抛出一个SQLiteExeception异常。
例如如果调用getWriteableDatabase来读写数据库但是由于磁盘已满而无法写入数据库就会发生这种情况。
如果得到异常就可以使用一个Toast一个弹出式消息告诉用户这个消息不可用。
db.query(...);最简单的数据库查询是从一个数据库的一个表中返回所有记录
第一个参数是表名第二个参数表示想要返回这些列中的值如果想要返回一个表中的所有记录将这些参数设置为null。
null);默认情况下表中数据按_id的顺序显示这是因为输入数据时的顺序。
如果希望按NAME的升序顺序可以使用以下代码。
ASC);ASC关键字表示你希望按升序对这一列排序。
默认的都会按升序队列排序所以也可以省略ASC倘若要以降序排序则要使用DESC。
还可以对多个列进行排序例如对FAVORITE降序排列然后对NAME按升序排列。
NAME);为数据设置过滤条件返回特定的记录例如返回DRINK列表中饮料名为Lattle的记录
游标主要有4个方法这些方法分别是moveToFirst、moveToLast、moveToPrevious、moveToNext。
要返回游标的第一个记录可以使用moveToFirst方法如果发现一个记录这个方法就会返回一个true值。
如果游标未返回任何记录就会返回false。
}同理、moveToLast是返回游标最后一个记录moveToPrevious是前一个记录moveToNext是后一个记录。
androidx.appcompat.app.AppCompatActivity;import
android.database.sqlite.SQLiteDatabase;
android.database.sqlite.SQLiteOpenHelper;
{super.onCreate(savedInstanceState);setContentView(R.layout.activity_drink);int
(Integer)getIntent().getExtras().get(EXTRA_DRINKID);SQLiteOpenHelper
StarbuzzDatabaseHelper(this);try
starbuzzDatabaseHelper.getReadableDatabase();Cursor
{Integer.toString(drinkId)},null,
findViewById(R.id.name);name.setText(nameText);TextView
findViewById(R.id.description);description.setText(descriptionText);ImageView
findViewById(R.id.photo);photo.setImageResource(photoId);photo.setContentDescription(nameText);}cursor.close();db.close();}catch
unavailable,Toast.LENGTH_SHORT);toast.show();}}
}二、修改DrinkCategoryActivity来使用Starbuzz数据库
这里的步骤与之前的有所不同因为这里要显示一个列表视图它使用饮料数据作为它的数据源。
我们要把这个数据的数据源转换为Starbuzz数据库
使用简单游标适配器的做法与使用数组适配器很类似要初始化适配器然后把它关联到列表视图。
//当前活动android.R.layout.simple_list_item_1,//在列表视图中对应每一行显示一个值cursor,//这是游标new
int[]{android.R.id.text1},//希望在那些视图中显示这些数据0);//用来确定游标的行为通常为0这是默认值也可以注册一个内容观察器listDrinks.setAdapter(listAdapter);修改后的DrinkCategoryActivity代码
androidx.appcompat.app.AppCompatActivity;import
android.database.sqlite.SQLiteDatabase;
android.database.sqlite.SQLiteOpenHelper;
android.widget.SimpleCursorAdapter;
{super.onCreate(savedInstanceState);setContentView(R.layout.activity_drink_category);ListView
findViewById(R.id.list_drinks);SQLiteOpenHelper
StarbuzzDatabaseHelper(this);try
starbuzzDatabaseHelper.getReadableDatabase();cursor
//当前活动android.R.layout.simple_list_item_1,//在列表视图中对应每一行显示一个值cursor,//这是游标new
int[]{android.R.id.text1},//希望在那些视图中显示这些数据0);//用来确定游标的行为通常为0这是默认值也可以注册一个内容观察器listDrinks.setAdapter(listAdapter);}catch(SQLException
Toast.LENGTH_SHORT);toast.show();}AdapterView.OnItemClickListener
AdapterView.OnItemClickListener()
Intent(DrinkCategoryActivity.this,
DrinkCategoryActivity.class);startActivity(intent);}Intent
Intent(DrinkCategoryActivity.this,
DrinkActivity.class);//向意图增加所单击列表项的ID第一个参数表示使用这个常量名表示意图中的额外信息名//这样就能知道DrinkCategoryActivity和DrinkActivity在使用同一个字符串//创建DrinkActivity活动时要增加这个常量。
intent.putExtra(DrinkActivity.EXTRA_DRINKID,
(int)id);startActivity(intent);}};listDrinks.setOnItemClickListener(itemClickListener);}Overrideprotected
{super.onDestroy();cursor.close();db.close();}
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback