相关疑难解决方法(0)

API Level <11的Cursor.getType()

我正在查询CallLog内容提供程序,需要检测列类型.

在Honeycomb和更新版本(API Level 11+)中,您可以通过调用Cursor.getType(int columnIndex)返回以下类型之一的方法获取列首选数据类型:

  • FIELD_TYPE_NULL(0)
  • FIELD_TYPE_INTEGER(1)
  • FIELD_TYPE_FLOAT(2)
  • FIELD_TYPE_STRING(3)
  • FIELD_TYPE_BLOB(4)

如何在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 android-contentprovider android-cursor

24
推荐指数
2
解决办法
7874
查看次数

在SQLite中获取列的类型

我的队友为我的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.任何的想法?

sqlite android

8
推荐指数
1
解决办法
2万
查看次数

Android游标?如何读取对象数据?

我知道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()用于任何类型吗?

sqlite android casting cursor getstring

5
推荐指数
1
解决办法
9352
查看次数