Articles of SQLite

Android评分栏仅显示完整的明星,而不是半星

我在Android应用程序中使用评级栏。 但它只显示满星,当我也想要半星。 我插入了一个带有名称和ratingValue的SQLite行,其中ratingValue代表“3.5”,但我的应用程序将其变为“4”。 即使我的StepSize为“0.5”,即使默认值更改为“3” 编辑:如果你单击listrow,它会对话另一个你可以“评价”的评级栏,如果你点击一个按钮,它就会将评级值发送到数据库中。 listitem RatingBar仅用于显示“平均”评级,但这是出错的地方,它将值向上舍入 编辑2:将步长设置为0.1现在,奇怪的是,只有中间星接受浮点数…剩下的星星仍然只有满而且如果我将等级设置为1.2,只有第二颗星接受浮动值,0.2第一个,等等,但其他星(不在该范围内)只是或满或空 这是一些代码 ListItem_layout 项目清单 if(ratingBar!=null) { ratingBar.setRating(p.getRating()); ratingBar.setTag(p.getId()); } 可重复使用的课程 public float getRating() { return Rating; } 用于评级的SQLite表列 COLUMN_RATING + ” real not null);” 最后,从数据库中获取 c.getFloat(COLUMN_RATING_COL)); 一些图像来解释

首次用户登录android后显示空值

我在应用程序中有3个片段,其中一个我在SQLite数据库中显示用户名。 当我注册一个新用户并第一次使用它登录时,会发生用户名出现的文本视图,它会显示NULL值,但是当我退出并再次使用同一个用户登录时,名称就会显示出来。 注册用户后,所有数据都插入到数据库中,我已经检查过了。 什么想法会导致这个问题? 我将根据请求添加一些代码,因为我不知道代码,片段或java文件的哪一部分可能会导致此问题。 EDITED 我添加了一些代码来帮助解决此问题。 主屏幕内的登录function(一旦应用启动): private void checkLogin(final String email, final String password) { // Tag used to cancel the request String tag_string_req = “req_login”; pDialog.setMessage(“Logging in …”); showDialog(); StringRequest strReq = new StringRequest(Request.Method.POST, AppConfig.URL_LOGIN, new Response.Listener() { @Override public void onResponse(String response) { Log.d(TAG, “Login Response: ” + response.toString()); hideDialog(); try […]

Android应用程序应该在哪里调用SQLite getWritableDatabase?

http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html#getWritableDatabase%28%29上的文档指出: 数据库升级可能需要很长时间,您不应该从应用程序主线程调用此方法[getWritableDatabase],包括来自ContentProvider.onCreate()。 这引出了一个问题:为了获得最佳实践,应该从哪里调用getWritableDatabase? 我的感觉是,也许应该在应用程序启动时调用一次,并使用回调将数据库标记为就绪。 它是否正确?

同时阅读3个选定项目

如何在同一时间阅读3个微调器选定的项目? 我在spinner1,2,3中有WorkDetails.java ,它们的值已插入到SQLite 。 在我的UpdatePage.java ,我想要检出所选项目,并且首先应在spinner project1,project2 and project3显示所选项目。 UpdatePage.java public void RetrievePage(String name,String date, String id) { final String name2 = name; final String date2=date; final String id2 = id; final EditText name3 = (EditText) findViewById(R.id.editText9); final EditText date3 = (EditText) findViewById(R.id.editText12); name3.setText(name2); date3.setText(date2); database = dbHelper.getWritableDatabase(); c = database.rawQuery( “SELECT i.Weather, i.Status,w.Subcontractors, w.NumberOfPerson,”+ […]

Android中SQLite的默认线程模式是什么?

http://www.sqlite.org/threadsafe.html 从上面的链接我开始知道,SQLite支持三种不同的线程模式:单线程,multithreading和序列化。 我很想知道“Android中SQLite的默认线程模式是什么”? 有没有办法以务实的方式改变线程模式? 如果是这样,我得到的优势如何? 什么时候选择哪一个样本案例? 提前致谢。

如何在android sqlite中获取有关该列的信息导致外键约束?

我想知道是否有可能获得有关SQLiteConstraintException: foreign key constraint信息SQLiteConstraintException: foreign key constraintexception。 我需要知道哪个列导致违反外键约束。 有没有办法从exception中获取这些信息? 如果我能得到该约束的名称也可能是好的。

Android SQLiteexception:由于未定义的语句而无法关闭

我正在编写一个Android购物管理器应用程序,并在尝试关闭我的一个SQLite数据库表时遇到错误。 ItemsDb idb = new ItemsDb(this); idb.open(); ArrayList itemNames = idb.getItemNames(); for(int i=0; i < itemNames.size(); i++){ String itemName = itemNames.get(i); String itemID = idb.getItemID(itemName); String itemName = idb.getItemNames().get(i); String itemPrices = idb.getItemPrices().get(i); String itemQuantity = idb.getItemQuantities().get(i); String dateBought = idb.getDateBought(itemName); String decayRate = idb.getDecayRate(itemName); String decayType = idb.getDecayType(itemName); String lastDecay = idb.getLastDecay(itemName); String prevQuantity […]

使用本地SQlite数据库填充可扩展列表视图的方法

我的应用程序中有一个sqlite数据库。 我想用它做一个可扩展的列表视图。 我已经采取了我应采取的方法。 尝试了很多相同的教程,却找不到一个教程,其中一个用本地数据库填充Expandable列表。 在android站点中有一个教程,他们用手机中的联系人详细信息填充可扩展列表。 他们是从内容提供商 ExpandableList2.java执行此操作 所以我的问题是我是否应该为我自己的应用程序内的数据库创建一个内容提供程序? 这是唯一的方法还是还有其他更好的方法?

通过cmd中的adb shell获取SQLite数据库

很简单的问题,但令人困惑。 我在我的Android应用程序中使用sqlite。 我想知道我们可以通过命令提示符在sqlite中执行(创建,插入,更新,删除)操作: – path> adb shell shell@android:/ $ sqlite3 /data/data/pack/databases/name sqlite> operations….. 这一切都取决于我的模拟器。 但我在附加我的谷歌nexus设备后做了同样的事情。 path> adb shell error:-/system/bin/sh: sqlite3: not found 为什么在关闭模拟器并添加设备后显示此错误。 这意味着我们无法通过cmd读取设备数据库(而不是模拟器)。 或者有没有办法通过cmd读取设备(而不是模拟器)数据库。

使用Android共享首选项来存储大量数据是个好主意吗?

所以我从别人那里inheritance了这个Android项目。 代码目前似乎是将大量数据(应该属于SQLite数据库)存储到共享首选项中。 我对这部分代码感到非常不舒服,并希望开始使用sqlite数据库。 但是我仍然无法向自己certificate自己需要的时间,特别是如果它没有立竿见影的好处。 当然我最终会把它转移到sqlite但是由于我有点紧张的截止日期,我想知道这是否值得做现在或以后。 任何关于在共享偏好中存储大量数据的想法和评论都将非常受欢迎。 谢谢