0

我正在做的是,如果数据库有 0 行,那么 startactivity1否则 start activity2

那么这怎么可能呢?我收到错误,应用程序每次都崩溃。
我使用了 if-else,但它不起作用。
请帮忙。

这是代码:

if (db.fetchnumber(1) == null) 
{
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
} else {
    super.onCreate(savedInstanceState);
    Intent i = new Intent(this,activity2.class);    
    startActivity(i); 
}

fetchnumber方法是:

public String fetchnumber(long rowID) throws SQLException
{
    String selectQuery = "SELECT " + PHONE_NUMBER + " FROM " + DATABASE_TABLE + " where " + KEY_ROWID + " = 1 ;"

    SQLiteDatabase db = this.getReadableDatabase();
    Cursor csr = db.query(DATABASE_TABLE, new String[] { KEY_ROWID, PHONE_NUMBER }, KEY_ROWID + "=" + rowID ,null, 
            null,null,null,null);
    String str = null;
    if (csr != null)
    {  
        csr.moveToFirst();
    str = csr.getString(1);
    }

    return str;

}
4

1 回答 1

1

请按照以下步骤操作。

1)创建一个活动(在清单中注册它......在其清单中设置启动器和主标签)

2)在第一步中,您现在创建了一个主要活动,说活动 A

3)在A的onCreate()方法中获取你的数据库方法来查看数据库是否有一些值。

4) 如果 db 在步骤 3 中返回 null,您可以启动 activity1,否则您可以启动 activity2。

开始一个活动使用startActivity(intent)方法

要读取数据库行,您可以查看cursor.getCount()哪个返回游标指向的表中的行数。

您的代码应如下所示

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
        DatabaseClass db = new DatabasClass(this);

        if(db.fetchDB() == null)
            StartActivity(intent1);
        else
            startActivity(intent2);


    }

}
于 2012-07-08T10:53:04.910 回答