我正在查询CallLog内容提供程序,需要检测列类型.
在Honeycomb和更新版本(API Level 11+)中,您可以通过调用Cursor.getType(int columnIndex)返回以下类型之一的方法获取列首选数据类型:
如何在Honeycomb <11设备上实现这一目标?
我尝试过以下方法:
for ( int i = 0; i < cursor.getColumnCount(); i++ ) {
int columnType = -1;
try {
cursor.getInt( i );
columnType = Cursor.FIELD_TYPE_INTEGER;
} catch ( Exception ignore ) {
try {
cursor.getString( i );
columnType = Cursor.FIELD_TYPE_STRING;
} catch ( Exception ignore1 ) {
try {
cursor.getFloat( i );
columnType = Cursor.FIELD_TYPE_FLOAT;
} catch ( Exception ignore2 ) {
try {
cursor.getBlob( i …Run Code Online (Sandbox Code Playgroud) 我的队友为我的Android应用程序制作了数据库.例如,其中一个表是这样创建的:
CREATE TABLE table1(
id_fields_starring INTEGER PRIMARY KEY AUTOINCREMENT
, fields_descriptor_id INTEGER NOT NULL
, starring_id INTEGER NOT NULL
, form_mandatory INTEGER NOT NULL DEFAULT 1
, form_visible INTEGER NOT NULL DEFAULT 1
, FOREIGN KEY(fields_descriptor_id) REFERENCES pr_fields_descriptor(id_fields_descriptor) ON DELETE CASCADE ON UPDATE CASCADE
, FOREIGN KEY(starring_id) REFERENCES starring(id_starring) ON DELETE CASCADE ON UPDATE CASCADE
)
Run Code Online (Sandbox Code Playgroud)
从表中的字段,我需要知道其中哪些是INTEGER NOT NULL和是INTEGER NOT NULL DEFAULT 1,因为第一种情况下,我必须dinamically的创建EditText和第二种情况下我必须创建一个CheckBox.任何的想法?
我知道Cursor有get String, Int等方法,但不是有些东西
mycursor.GetObject(index)
Run Code Online (Sandbox Code Playgroud)
我想创建一个返回一个对象的动态方法,我只抛出它.
或者可以
mycursor.GetString(index)用于任何类型? String,Float,Double,Long,Short, Blob,Int,等等
我可以使用例如a Float或a Int或任何类型并投射它?
例如
(Blob) newblob=mycursor.GetString(i_return_BloB);
(Int) newint=mycursor.GetString(i_return_Int);
(Float) newfloat=mycursor.GetString(i_return_Float);
(Double) newdouble=mycursor.GetString(i_return_Double);
(Long) newlong=mycursor.GetString(i_return_long);
(Short) newshort=mycursor.GetString(i_return_short);
Run Code Online (Sandbox Code Playgroud)
会有用吗?我可以mycursor.GetString()用于任何类型吗?