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

网站建设 网页制作网页设计与制作论文800字

网站建设 网页制作,网页设计与制作论文800字,一家专门做男人的网站,公司装修属于什么费用代码仓库#xff1a;https://github.com/MADMAX110/Starbuzz Android应用打开数据库时首先要搜索数据库文件#xff0c;如果没有找到数据库文件就要创建一个空的数据库。然后它要运行所有SQL命令#xff0c;在数据库中创建数据库表和需要的所有初始数据。最后还要执行一些查…代码仓库https://github.com/MADMAX110/Starbuzz Android应用打开数据库时首先要搜索数据库文件如果没有找到数据库文件就要创建一个空的数据库。然后它要运行所有SQL命令在数据库中创建数据库表和需要的所有初始数据。最后还要执行一些查询从数据库得到数据。 线程合作让生活更美好 访问一个很慢的数据库会让你的应用看起来好像没有响应。 线程主要有三种 1、主事件线程 2、呈现线程 3、你创建的所有其他线程 如果你不细心应用几乎所有的工作都可能在主事件线程中完成因为这个线程运行你的事件方法如果把数据库代码放在onCreate方法中主事件线程就会忙于与数据库交互而不会迅速应对来自屏幕或其他应用的事件。 如果你的数据库代码要花很长时间用户就会觉得自己被忽略或者担心应用是否崩溃了。 所以这里的技巧时将数据库代码从主事件线程移出来在后台的一个定制线程中运行。 AsyncTask完成异步任务 AsyncTask类允许你在后台完成操作。这些操作运行结束时就可以在主事件线程中更新视图。 如果任务是重复的甚至可以利用这个类发布任务运行的进度。 要创建AsyncTask需要扩展AsyncTask类并实现它的doInBackground方法。这个方法中的代码会在后台线程中运行所以把数据库代码放在这里非常合适。AsyncTask类还有一个onPreExecute方法这个方法在doInBackground之后运行。如果需要发布任务进度还可以使用一个onProgressUpdate方法。 private class MyAsyncTask extends AsyncTask{//可选在后台运行的代码之前运行Overrideprotected void onPreExecute() {super.onPreExecute();}//必须实现这个方法Overrideprotected Object doInBackground(Object[] objects) {return null;}//允许你发布在后台运行的代码的进度Overrideprotected void onProgressUpdate(Object[] values) {super.onProgressUpdate(values);}//在后台中的代码结束运行Overrideprotected void onPostExecute(Object o) {super.onPostExecute(o);}}onPreExecute方法 这个方法会在后台任务开始之前调用用来建立任务。 onPreExecute方法在主事件线程调用所以它可以访问用户界面中的视图。 在这里使用onPreExecute方法得到favorite复选框的值把它放在drinkValues ContentValues对象中。 这是因为我们需要访问这个复选框视图才能得到它的值而且这个工作必须在运行数据库代码之前完成。 我们要在这个方法之外使用另一个属性表示drinkValues ContentValues对象使得这个类的其他方法也能访问这个ContentValues对象。 private class UpdateDrinkTask extends AsyncTaskInteger, Void, Boolean{private ContentValues drinkValues;protected void onPreExecute(){CheckBox favorite (CheckBox) findViewById(R.id.favorite);drinkValues new ContentValues();drinkValues.put(FAVORITE, favorite.isChecked());}}doInBackground方法 Overrideprotected Boolean doInBackground(Integer[] drinks) {int drinkId drinks[0];SQLiteOpenHelper starbuzzDatabaseHelper new StarbuzzDatabaseHelper(DrinkActivity.this);try {SQLiteDatabase db starbuzzDatabaseHelper.getWritableDatabase();db.update(DRINK,drinkValues,_id ?,new String[] {Integer.toString(drinkId)});db.close();return true;}catch (SQLiteException e){return false;}}onProgressUpdate方法 该方法在主事件线程调用所以可以访问用户界面中的视图。可以使用这个方法更新屏幕上的视图向用户显示进度。要定义这个方法接受什么类型的参数。 如果由doInBackground方法调用publishProgress就会运行onProgressUpdate方法如下所示 protected Boolean doInBackground(Integer[] count) {for (int i 0; i count; i){publishProgress(i);}}Overrideprotected void onProgressUpdate(Integer... progress) {super.onProgressUpdate(progress[0]);}onPostExecute方法 后台任务完成后调用onPostExecute()方法。它在主事件线程中调用所以可以访问用户界面中的视图。可以使用这个方法为用户呈现任务的结果。要把doInBackground方法的结果传入onPostExecute方法所以它的参数必须与doInBackground的返回类型一致。 我们要使用onPostExecute方法检查doInBackground方法中的数据库代码是否成功运行。如果没有就要向用户显示一个消息。这个工作在onPostExecute方法中完成因为这个方法可以更新用户界面。doInBackground方法在后台线程中运行所以不能更新视图。 protected void onPostExecute(Boolean success) {if (!success) {Toast toast Toast.makeText(DrinkActivity.this, Darabase unavailable, Toast.LENGTH_SHORT);toast.show();}}AsyncTask类 AsyncTask是一个抽象类它定义了三个泛型参数Params、Progress和Result。这三个参数在创建AsyncTask的子类并实现其方法时使用以便更好地处理异步任务。 Params这个参数类型是在任务开始执行时传递给AsyncTask的。具体传递的内容根据任务的需要而定例如可能是要加载的图片的URL或者是需要从网络上获取数据的特定字段名称等。 Progress这个参数类型用于异步任务执行过程中的进度更新。当任务执行过程中需要更新进度时可以在任务线程中调用publishProgress()方法传递当前的进度值然后在主线程中通过重写onProgressUpdate(Progress…)方法来接收并处理这些进度值。 Result这个参数类型是在异步任务执行完成后返回的结果。当任务执行完毕后可以在任务线程中调用onPostExecute(Result result)方法传递计算得到的结果然后在主线程中通过重写此方法来接收并处理这些结果。 这三个参数在AsyncTask中是非常重要的它们使得异步任务的执行过程变得更加清晰、有条理。 完整的DrinkActivity package com.hfad.starbuzz;import androidx.appcompat.app.AppCompatActivity; import android.content.ContentValues; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteException; import android.database.sqlite.SQLiteOpenHelper; import android.os.AsyncTask; import android.os.Bundle; import android.view.View; import android.widget.CheckBox; 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, FAVORITE},_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);boolean isFavorite (cursor.getInt(3) 1);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);CheckBox favorite (CheckBox) findViewById(R.id.favorite);favorite.setChecked(isFavorite);}cursor.close();db.close();}catch (SQLException e){Toast toast Toast.makeText(this,Database unavailable,Toast.LENGTH_SHORT);toast.show();}}public void onFavoriteClicked(View view){int drinkId (Integer)getIntent().getExtras().get(EXTRA_DRINKID);CheckBox favorite (CheckBox) findViewById(R.id.favorite);ContentValues drinkValues new ContentValues();drinkValues.put(FAVORITE, favorite.isChecked());SQLiteOpenHelper starbuzzDatabaseHelper new StarbuzzDatabaseHelper(this);try{SQLiteDatabase db starbuzzDatabaseHelper.getWritableDatabase();db.update(DRINK,drinkValues,_id ?,new String[] {Integer.toString(drinkId)});db.close();}catch(SQLiteException e) {Toast toast Toast.makeText(this, Database unavailable, Toast.LENGTH_SHORT);toast.show();}}private class UpdateDrinkTask extends AsyncTaskInteger, Void, Boolean {private ContentValues drinkValues;protected void onPreExecute(){CheckBox favorite (CheckBox) findViewById(R.id.favorite);drinkValues new ContentValues();drinkValues.put(FAVORITE, favorite.isChecked());}Overrideprotected Boolean doInBackground(Integer[] drinks) {int drinkId drinks[0];SQLiteOpenHelper starbuzzDatabaseHelper new StarbuzzDatabaseHelper(DrinkActivity.this);try {SQLiteDatabase db starbuzzDatabaseHelper.getWritableDatabase();db.update(DRINK,drinkValues,_id ?,new String[] {Integer.toString(drinkId)});db.close();return true;}catch (SQLiteException e){return false;}}}protected void onPostExecute(Boolean success) {if (!success) {Toast toast Toast.makeText(DrinkActivity.this, Darabase unavailable, Toast.LENGTH_SHORT);toast.show();}}}
http://www.huolong8.cn/news/237799/

相关文章:

  • 重庆市官方网站网站需求分析是在建站的什么阶段做的_为什么要做?
  • 做网站编辑如何写好一篇新闻网站建立教学
  • 深圳官方网站出名的设计公司
  • 怎么给搞笑网站做文案自己的网站如何让百度收录
  • 做特殊单页的网站免费开源建站教学网站
  • 怎么搞一个网站平台做网站设计制作的
  • 简述建设一个网站的具体步骤网站开发的安全性原则
  • 哪些网站用django做的元宇宙软件开发
  • php婚庆网站源码国家网站建设
  • 毕业设计做网站应该学什么做网站做什么公司好
  • 网站设计公司推荐奇点网络安 网站建设
  • 临海受欢迎营销型网站建设vi设计和logo设计区别
  • 网站首页设计与制作网页设计公司兴田德润在哪儿
  • 手机网站工具wordpress帅气主题
  • 海珠做网站如何使用win2008iis建设网站
  • 写作网站起点上海网站建设公司价格
  • 广东微信网站制作多少钱嘉兴服饰网站建设
  • 贵阳网站如何推广做微信首图的网站
  • react可以做门户网站么北京招聘网站开发
  • 网站建设完成后为何无法运营下去苏州风险区域最新
  • 代理合同seo的中文是什么
  • 建设部网站 43号文件江西门户网站建设
  • 网站设计最新风格网站设计内容板块
  • 网站建设与维护ppt建模e-r跟做网站有什么关系
  • 柳州购物网站开发设计企业培训师资格证报考2022
  • 个人能不能自己做网站怎样进网站ftp
  • 可以下载各种软件的网站wordpress页面php代码
  • 肇庆市网站建设平台wordpress 4.2.4漏洞
  • 租号网站开发学校文化建设聚奇网站
  • 周口市住房和城乡建设局门户网站宁波拾谷网站建设