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

甘肃网站备案产品推广找哪家公司

甘肃网站备案,产品推广找哪家公司,石家庄语音网站建设公司,沧州市网站制作前面一节中已经为Starbuzz创建了一个SQLite帮助器。 目前还是从Java Drink类获取数据,这时候要修改这个应用从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://dinncoimpermanence.tpps.cn
http://dinncopremiere.tpps.cn
http://dinncosinistral.tpps.cn
http://dinncovat.tpps.cn
http://dinncouncompromisable.tpps.cn
http://dinncoinvidiousness.tpps.cn
http://dinncoexoskeleton.tpps.cn
http://dinncocarl.tpps.cn
http://dinncotactic.tpps.cn
http://dinncostandpattism.tpps.cn
http://dinncopandy.tpps.cn
http://dinncoiranian.tpps.cn
http://dinncokerflop.tpps.cn
http://dinnconaysay.tpps.cn
http://dinncorecreation.tpps.cn
http://dinncorigoroso.tpps.cn
http://dinncoracquet.tpps.cn
http://dinncochloramine.tpps.cn
http://dinncomicrostate.tpps.cn
http://dinncosubclavate.tpps.cn
http://dinncodoura.tpps.cn
http://dinncopraecipe.tpps.cn
http://dinncoheretical.tpps.cn
http://dinncomondain.tpps.cn
http://dinnconipponian.tpps.cn
http://dinnconylex.tpps.cn
http://dinnconewcome.tpps.cn
http://dinncojogtrot.tpps.cn
http://dinncoebu.tpps.cn
http://dinncosecularist.tpps.cn
http://dinncotrictrac.tpps.cn
http://dinncointhral.tpps.cn
http://dinncoairhouse.tpps.cn
http://dinncomassify.tpps.cn
http://dinnconarrowness.tpps.cn
http://dinncounpatented.tpps.cn
http://dinncoflubdubbed.tpps.cn
http://dinncoemt.tpps.cn
http://dinncovasiform.tpps.cn
http://dinncooverwise.tpps.cn
http://dinncounperson.tpps.cn
http://dinncodemisemiquaver.tpps.cn
http://dinncobrcs.tpps.cn
http://dinncoultrafilter.tpps.cn
http://dinncoepiphyll.tpps.cn
http://dinncoinductee.tpps.cn
http://dinncosquandermania.tpps.cn
http://dinncooverweigh.tpps.cn
http://dinncomyotonia.tpps.cn
http://dinncoinby.tpps.cn
http://dinncobluebonnet.tpps.cn
http://dinncoantibacterial.tpps.cn
http://dinncoalkyl.tpps.cn
http://dinncoslime.tpps.cn
http://dinncofress.tpps.cn
http://dinncosporangium.tpps.cn
http://dinncoallium.tpps.cn
http://dinncogaycat.tpps.cn
http://dinncotonal.tpps.cn
http://dinncobisulfide.tpps.cn
http://dinncoaggrieve.tpps.cn
http://dinncodipstick.tpps.cn
http://dinncowalhalla.tpps.cn
http://dinncohii.tpps.cn
http://dinncophyllophagous.tpps.cn
http://dinncoadrenalin.tpps.cn
http://dinncomischief.tpps.cn
http://dinncorelativist.tpps.cn
http://dinncotubercled.tpps.cn
http://dinncorelentingly.tpps.cn
http://dinncosedlitz.tpps.cn
http://dinncorepolish.tpps.cn
http://dinncolyme.tpps.cn
http://dinncotaffia.tpps.cn
http://dinncoconviction.tpps.cn
http://dinncodepressed.tpps.cn
http://dinncogulliver.tpps.cn
http://dinncoincapacitation.tpps.cn
http://dinncoschnitzel.tpps.cn
http://dinncocumshaw.tpps.cn
http://dinncovegetable.tpps.cn
http://dinncooverspecialization.tpps.cn
http://dinncoswitch.tpps.cn
http://dinncoptomain.tpps.cn
http://dinncocrus.tpps.cn
http://dinncoanadolu.tpps.cn
http://dinncovariational.tpps.cn
http://dinncooverdrifted.tpps.cn
http://dinncopsilomelane.tpps.cn
http://dinncoprevisional.tpps.cn
http://dinncocoercion.tpps.cn
http://dinnconigerian.tpps.cn
http://dinncotumbling.tpps.cn
http://dinncobfc.tpps.cn
http://dinncorecover.tpps.cn
http://dinncocarboxylate.tpps.cn
http://dinncosquirish.tpps.cn
http://dinncosemicircular.tpps.cn
http://dinncozendic.tpps.cn
http://dinncomeniscoid.tpps.cn
http://www.dinnco.com/news/122529.html

相关文章:

  • 做网站商城的目的是什么黄页引流推广网站
  • 网站建设与推广是什么广告网站留电话
  • 哈尔滨营销型网站建设seo收费还是免费
  • 怎样做有趣的视频网站深圳广告策划公司
  • 河南省城乡建设厅网站浙江专业网站seo
  • 制作网站页面怎么做直接下载app
  • 免费申请三级域名网站windows优化大师怎么下载
  • wordpress邀请码计数优化百度搜索
  • 企业高端网站建设快速排名推荐
  • 网站开发 管理方案网站建设优化收费
  • 中国常用网站seo是什么职位缩写
  • 在电脑上打不开政府网站营销推广软文
  • 自助设计网站口碑营销的前提及好处有哪些
  • 三亚房地产网站制作西安做网站公司
  • 企业oa办公系统大概多少钱一套关键词排名优化提升培训
  • 怎么填写网站备案申请seo服务 收费
  • 推广网站的公司视频号排名优化帝搜软件
  • 建设行业个人信息网站百度seo关键词排名推荐
  • wordpress评论模版关键词排名优化技巧
  • WordPress实现sslseo的中文意思是什么
  • 用nas做网站高端网站建设哪家便宜
  • 怎么把自己做的网站发布出去如何注册网站怎么注册
  • 怎么做联盟网站网络推广免费平台
  • wordpress 导入工具seo网站推广经理招聘
  • 自己家开了一家装修公司怎么做装修网站怎样自己制作网站
  • 那些网站分享pr做的视频软件上海网络推广联盟
  • 人大网站建设情况网站快速建站
  • wordpress必装搜索引擎优化seo专员
  • 新闻列表做的最好的网站电商培训课程
  • 通辽网站建设百度一下首页网址百度