Java 如何从计时器选择器保存和显示当前分钟数?(当前小时数已实施)
我有一个应用程序,它将CurrentHour存储在sqlite数据库中,然后在另一个活动中显示它。这是我第一次使用时间选择器-因此我不确定我到底做错了什么,但当我添加到存储和查看CurrentHour的成功代码中时-当我尝试为CurrentMinute添加代码(基于CurrentHour)时,应用程序将不会保存数据 添加_country.xml(我试图从中存储分钟值的计时器选择器所在的位置) DATABASEOPENHELPER.JAVA 附言 我希望在view_country.xml中的同一行上显示CurrentHour和CurrentMinute(如果可能)Java 如何从计时器选择器保存和显示当前分钟数?(当前小时数已实施),java,android,eclipse,sqlite,timepicker,Java,Android,Eclipse,Sqlite,Timepicker,我有一个应用程序,它将CurrentHour存储在sqlite数据库中,然后在另一个活动中显示它。这是我第一次使用时间选择器-因此我不确定我到底做错了什么,但当我添加到存储和查看CurrentHour的成功代码中时-当我尝试为CurrentMinute添加代码(基于CurrentHour)时,应用程序将不会保存数据 添加_country.xml(我试图从中存储分钟值的计时器选择器所在的位置) DATABASEOPENHELPER.JAVA 附言 我希望在view_country.xml中的同一行
如果不是这样的话——仅仅是获得一些传递数据的帮助就太好了!(一旦我弄清楚了为什么数据没有通过,我就会弄清楚剩下的部分)
日志:
03-22 08:41:10.120:D/Activity(9149):Activity.onPause(),editTextTapSensorList大小:0
03-22 08:41:10.240:I/Adreno200 EGLSUB(9149)::格式RGBA_8888。
03-22 08:41:10.240:D/memalloc(9149):离子:映射缓冲区基址:0x5d981000大小:614400偏移量:0 fd:69
03-22 08:41:10.300:D/memalloc(9149):离子:映射缓冲区基址:0x5da29000大小:614400偏移量:0 fd:75
03-22 08:41:10.350:D/memalloc(9149):离子:映射缓冲区基址:0x5debf000大小:614400偏移量:0fd:78
03-22 08:41:10.360:D/memalloc(9149):离子:取消映射缓冲区基:0x5d05e000大小:614400
03-22 08:41:10.360:D/memalloc(9149):离子:取消映射缓冲区基:0x5d12e000大小:614400
03-22 08:41:10.360:D/memalloc(9149):离子:取消映射缓冲区基:0x5d385000大小:614400
03-22 08:41:16.316:E/SQLiteDatabase(9149):插入min=time=41代码=8 cap=name=ttttttt时出错
03-22 08:41:16.316:E/SQLiteDatabase(9149):android.database.sqlite.SQLiteException:表country没有名为min:的列,编译时:插入country(min,time,code,cap,name)值(?,,,,,,?)
03-22 08:41:16.316:E/SQLiteDatabase(9149):在android.database.sqlite.SQLiteCompiledSql.native_compiled(native方法)
03-22 08:41:16.316:E/SQLiteDatabase(9149):位于android.database.sqlite.SQLiteCompiledSql.(SQLiteCompiledSql.java:68)
03-22 08:41:16.316:E/SQLiteDatabase(9149):位于android.database.sqlite.SQLiteProgram.compileSql(SQLiteProgram.java:143)
03-22 08:41:16.316:E/SQLiteDatabase(9149):位于android.database.sqlite.SQLiteProgram.compileAndbindAllArgs(SQLiteProgram.java:361)
03-22 08:41:16.316:E/SQLiteDatabase(9149):位于android.database.sqlite.SQLiteStatement.acquiredandlock(SQLiteStatement.java:260)
03-22 08:41:16.316:E/SQLiteDatabase(9149):位于android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:112)
03-22 08:41:16.316:E/SQLiteDatabase(9149):位于android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1736)
03-22 08:41:16.316:E/SQLiteDatabase(9149):位于android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1609)
03-22 08:41:16.316:E/SQLiteDatabase(9149):位于com.nfc.linkingmanager.DatabaseConnector.insertContact(DatabaseConnector.java:42)
03-22 08:41:16.316:E/SQLiteDatabase(9149):位于com.nfc.linkingmanager.AddEditCountry.saveContact(AddEditCountry.java:96)
03-22 08:41:16.316:E/SQLiteDatabase(9149):在com.nfc.linkingmanager.AddEditCountry.access$1(AddEditCountry.java:90)
03-22 08:41:16.316:E/SQLiteDatabase(9149):在com.nfc.linkingmanager.AddEditCountry$1.doInBackground(AddEditCountry.java:63)
03-22 08:41:16.316:E/SQLiteDatabase(9149):位于android.os.AsyncTask$2.call(AsyncTask.java:264)
03-22 08:41:16.316:E/SQLiteDatabase(9149):位于java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
03-22 08:41:16.316:E/SQLiteDatabase(9149):位于java.util.concurrent.FutureTask.run(FutureTask.java:137)
03-22 08:41:16.316:E/SQLiteDatabase(9149):在android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
03-22 08:41:16.316:E/SQLiteDatabase(9149):位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
03-22 08:41:16.316:E/SQLiteDatabase(9149):位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
03-22 08:41:16.316:E/SQLiteDatabase(9149):at java.lang.Thread.run(Thread.java:856)
03-22 08:41:16.316:D/Activity(9149):Activity.onPause(),editTextTapSensorList大小:0
03-22 08:41:16.336:I/Adreno200 EGLSUB(9149)::格式RGBA_8888。
03-22 08:41:16.347:D/memalloc(9149):离子:映射缓冲区基址:0x5d05e000大小:614400偏移量:0 fd:58
03-22 08:41:16.377:D/memalloc(9149):离子:映射缓冲区基址:0x5d12e000大小:614400偏移量:0 fd:62
03-22 08:41:16.407:D/memalloc(9149):离子:取消映射缓冲区基:0x5d981000大小:614400
03-22 08:41:16.407:D/memalloc(9149):离子:取消映射缓冲区基:0x5da29000大小:614400
03-22 08:41:16.407:D/memalloc(9149):离子:取消映射缓冲区基:0x5debf000大小:614400
03-22 08:41:16.457:D/memalloc(9149):离子:映射缓冲区基址:0x5d385000大小:614400偏移量:0 fd:66
错误很明显。
尝试向不存在的列插入值:
table country has no column named min: , while compiling: INSERT INTO country(min,time,code,cap,name) VALUES (?,?,?,?,?)
请注意使用正确的列定义
String createQuery = "CREATE TABLE country (_id integer primary key autoincrement,name, cap, code, time, min);"; <==HERE
public void insertContact(String name, String cap, String code, String time, String min)
{
ContentValues newCon = new ContentValues();
newCon.put("name", name);
newCon.put("cap", cap);
newCon.put("time", time);
newCon.put("min", min); <== HERE
newCon.put("code", code);
public void updateContact(long id, String name, String cap,String code, String time, String min)
{
ContentValues editCon = new ContentValues();
editCon.put("name", name);
editCon.put("cap", cap);
editCon.put("time", time);
editCon.put("min", min); <== HERE
editCon.put("code", code);
String createQuery=“创建表国家(_idinteger主键自动递增、名称、上限、代码、时间、分钟);” 例外情况清楚地表明,country
表没有min
列
SQLiteException:table country没有名为min:的列,在编译时:插入到country(min,time,code,cap,name)值(?,,,,,?,?)
我查看了我的源代码,在软件试图插入数据的任何地方,都有min的值以及其他字段。你看到我没有看到的东西了吗?那不是价值。列的名称错误。“min”不是名字!另外,这篇文章的标题是“我如何保存和显示来自时间选择器的当前分钟数?”您(您自己或社区)对我如何保存和显示当前分钟数有何建议?
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
public class DatabaseConnector {
private static final String DB_NAME = "WorldCountries";
private SQLiteDatabase database;
private DatabaseOpenHelper dbOpenHelper;
public DatabaseConnector(Context context) {
dbOpenHelper = new DatabaseOpenHelper(context, DB_NAME, null, 1);
}
public void open() throws SQLException
{
//open database in reading/writing mode
database = dbOpenHelper.getWritableDatabase();
}
public void close()
{
if (database != null)
database.close();
}
public void insertContact(String name, String cap, String code, String time, String min)
{
ContentValues newCon = new ContentValues();
newCon.put("name", name);
newCon.put("cap", cap);
newCon.put("time", time);
newCon.put("min", min);
newCon.put("code", code);
open();
database.insert("country", null, newCon);
close();
}
public void updateContact(long id, String name, String cap,String code, String time, String min)
{
ContentValues editCon = new ContentValues();
editCon.put("name", name);
editCon.put("cap", cap);
editCon.put("time", time);
editCon.put("min", min);
editCon.put("code", code);
open();
database.update("country", editCon, "_id=" + id, null);
close();
}
public Cursor getAllContacts()
{
return database.query("country", new String[] {"_id", "name"},
null, null, null, null, "name");
}
public Cursor getOneContact(long id)
{
return database.query("country", null, "_id=" + id, null, null, null, null);
}
public void deleteContact(long id)
{
open();
database.delete("country", "_id=" + id, null);
close();
}
}
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseOpenHelper extends SQLiteOpenHelper {
public DatabaseOpenHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
String createQuery = "CREATE TABLE country (_id integer primary key autoincrement,name, cap, code, time, min);";
db.execSQL(createQuery);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
<TextView
android:id="@+id/timeEdit"
style="@style/StyleText"/>
03-22 08:41:10.120: D/Activity(9149): Activity.onPause(), editTextTapSensorList size: 0
03-22 08:41:10.240: I/Adreno200-EGLSUB(9149): <ConfigWindowMatch:2165>: Format RGBA_8888.
03-22 08:41:10.240: D/memalloc(9149): ion: Mapped buffer base:0x5d981000 size:614400 offset:0 fd:69
03-22 08:41:10.300: D/memalloc(9149): ion: Mapped buffer base:0x5da29000 size:614400 offset:0 fd:75
03-22 08:41:10.350: D/memalloc(9149): ion: Mapped buffer base:0x5debf000 size:614400 offset:0 fd:78
03-22 08:41:10.360: D/memalloc(9149): ion: Unmapping buffer base:0x5d05e000 size:614400
03-22 08:41:10.360: D/memalloc(9149): ion: Unmapping buffer base:0x5d12e000 size:614400
03-22 08:41:10.360: D/memalloc(9149): ion: Unmapping buffer base:0x5d385000 size:614400
03-22 08:41:16.316: E/SQLiteDatabase(9149): Error inserting min= time=41 code=8 cap= name=Tttttsstttt
03-22 08:41:16.316: E/SQLiteDatabase(9149): android.database.sqlite.SQLiteException: table country has no column named min: , while compiling: INSERT INTO country(min,time,code,cap,name) VALUES (?,?,?,?,?)
03-22 08:41:16.316: E/SQLiteDatabase(9149): at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
03-22 08:41:16.316: E/SQLiteDatabase(9149): at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:68)
03-22 08:41:16.316: E/SQLiteDatabase(9149): at android.database.sqlite.SQLiteProgram.compileSql(SQLiteProgram.java:143)
03-22 08:41:16.316: E/SQLiteDatabase(9149): at android.database.sqlite.SQLiteProgram.compileAndbindAllArgs(SQLiteProgram.java:361)
03-22 08:41:16.316: E/SQLiteDatabase(9149): at android.database.sqlite.SQLiteStatement.acquireAndLock(SQLiteStatement.java:260)
03-22 08:41:16.316: E/SQLiteDatabase(9149): at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:112)
03-22 08:41:16.316: E/SQLiteDatabase(9149): at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1736)
03-22 08:41:16.316: E/SQLiteDatabase(9149): at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1609)
03-22 08:41:16.316: E/SQLiteDatabase(9149): at com.nfc.linkingmanager.DatabaseConnector.insertContact(DatabaseConnector.java:42)
03-22 08:41:16.316: E/SQLiteDatabase(9149): at com.nfc.linkingmanager.AddEditCountry.saveContact(AddEditCountry.java:96)
03-22 08:41:16.316: E/SQLiteDatabase(9149): at com.nfc.linkingmanager.AddEditCountry.access$1(AddEditCountry.java:90)
03-22 08:41:16.316: E/SQLiteDatabase(9149): at com.nfc.linkingmanager.AddEditCountry$1$1.doInBackground(AddEditCountry.java:63)
03-22 08:41:16.316: E/SQLiteDatabase(9149): at android.os.AsyncTask$2.call(AsyncTask.java:264)
03-22 08:41:16.316: E/SQLiteDatabase(9149): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
03-22 08:41:16.316: E/SQLiteDatabase(9149): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
03-22 08:41:16.316: E/SQLiteDatabase(9149): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
03-22 08:41:16.316: E/SQLiteDatabase(9149): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
03-22 08:41:16.316: E/SQLiteDatabase(9149): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
03-22 08:41:16.316: E/SQLiteDatabase(9149): at java.lang.Thread.run(Thread.java:856)
03-22 08:41:16.316: D/Activity(9149): Activity.onPause(), editTextTapSensorList size: 0
03-22 08:41:16.336: I/Adreno200-EGLSUB(9149): <ConfigWindowMatch:2165>: Format RGBA_8888.
03-22 08:41:16.347: D/memalloc(9149): ion: Mapped buffer base:0x5d05e000 size:614400 offset:0 fd:58
03-22 08:41:16.377: D/memalloc(9149): ion: Mapped buffer base:0x5d12e000 size:614400 offset:0 fd:62
03-22 08:41:16.407: D/memalloc(9149): ion: Unmapping buffer base:0x5d981000 size:614400
03-22 08:41:16.407: D/memalloc(9149): ion: Unmapping buffer base:0x5da29000 size:614400
03-22 08:41:16.407: D/memalloc(9149): ion: Unmapping buffer base:0x5debf000 size:614400
03-22 08:41:16.457: D/memalloc(9149): ion: Mapped buffer base:0x5d385000 size:614400 offset:0 fd:66
table country has no column named min: , while compiling: INSERT INTO country(min,time,code,cap,name) VALUES (?,?,?,?,?)
String createQuery = "CREATE TABLE country (_id integer primary key autoincrement,name, cap, code, time, min);"; <==HERE
public void insertContact(String name, String cap, String code, String time, String min)
{
ContentValues newCon = new ContentValues();
newCon.put("name", name);
newCon.put("cap", cap);
newCon.put("time", time);
newCon.put("min", min); <== HERE
newCon.put("code", code);
public void updateContact(long id, String name, String cap,String code, String time, String min)
{
ContentValues editCon = new ContentValues();
editCon.put("name", name);
editCon.put("cap", cap);
editCon.put("time", time);
editCon.put("min", min); <== HERE
editCon.put("code", code);