如何将toast的文本字段存储到数据库中?

时间:2017-11-24 07:49:51

标签: android sqlite android-sqlite

我一直在写这个代码来获取位置。如何将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方法的文本字段吗?

2 个答案:

答案 0 :(得分:0)

方法void ContentValues.put(String key, <type> value)用于使用密钥保存值,其中<type>代表'ShortLongDoubleIntegerStringBooleanFloatByteByte[]。然后,可以通过方法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);
}