【Android】【数据库】若Cursor中包含的数据‘其数据类型未知’,那我要怎样获取这些数据?

我用的是android.database.Cursor类,我发现其中包含getString()、getInt()、getLong()……等一堆方法,但是就是没有getObject()或者单纯的get()方法。

问题①:
请问Cursor获取数据的时候有没有”不指定数据类型“的方法(就像Map.get()那样) ?

然后我再通过类似下面这种方法转换数据:
int i = (int) (cursor.getObject(i));

问题②:
如果上述方法不存在,那么我能否可以先用getString()接收任意类型的数据,再自己做转换? 比如:
String data = cursor.getString(i);
int i = Integer.parse(data);

如果这种方法可行,那么如果接收到的是Date类型的数据,该怎么转换?可以直接用像下面这两种方式转换吗:
(1) Date date = Date.valueOf(data );
(2) SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd ");
Date date = sdf.parse(data);

把读取的数据存起来就可以了~<pre t="code" l="java">ArrayList<HashMap<String, Object>> temp = new ArrayList<HashMap<String,Object>>();
if(cursor.moveToFirst()){
do{
HashMap<String, Object> map = new HashMap<String, Object>();
String name = cursor.getString(cursor.getColumnIndex("fromuser"));
String toname = cursor.getString(cursor.getColumnIndex("touser"));
String content = cursor.getString(cursor.getColumnIndex("content"));
String date = cursor.getString(cursor.getColumnIndex("date"));
String type = cursor.getString(cursor.getColumnIndex("type"));
map.put("fromuser", name);
//其他数据同
temp.add(map);
}while(cursor.moveToNext());
}
//读取数据
String name1 = temp.get(1).get("name").toString();
温馨提示:答案为网友推荐,仅供参考