我一直在写这个代码来获取位置。如何将mg
存储在SQLite
的{{1}}数据库中?
android
我试过这个: -
public void onLocationChanged(Location location) {
String mg = " Latitude:" + location.getLatitude() + " Longitude:" + location.getLatitude();
Toast.makeText(getBaseContext(),mg, Toast.LENGTH_LONG).show();
它没有存储,所以我怀疑我能存储Toast方法的文本字段吗?
答案 0 :(得分:0)
方法void ContentValues.put(String key, <type> value)
用于使用密钥保存值,其中<type>
代表'Short
,Long
,Double
,Integer
, String
,Boolean
,Float
,Byte
或Byte[]
。然后,可以通过方法Object ContentValues.get(String key)
检索存储的值,并将进一步的转换结果检索到您的类型,或者通过Boolean ContentValues.getAsBoolean(String key)
等方便的方法检索。详见documentation。
因此,似乎put
位置对象无法直接进入ContentValues
。我不认为Location.toString()
可以提供帮助,因为这种方法通常会返回对象的内部表示(参见here):
getClass()。getName()+'@'+ Integer.toHexString(hashCode())
可以建议将纬度和经度(以及所有其他必要的Location
参数)作为数值或字符串值。其他方法是创建自己继承自Location
的类,并覆盖toString
方法以在一个字符串中返回所有必要的数据。但是,恕我直言,通过单独的值保存纬度,经度和其他必要的东西可能更有用。
答案 1 :(得分:0)
我找到了解决问题的方法并设置为:
public void onLocationChanged(Location location) {
String mg = " Latitude:" + location.getLatitude() + " Longitude:" + location.getLatitude();
textView.setText(mg);
ContentValues contentValues = new ContentValues();
contentValues.put("column name", textView.getText().toString());
sqliteDatabase.insert("table name", null, contentValues);
}