如何在启动应用程序时启动Android中的特定活动

时间:2012-07-08 10:47:05

标签: android database

我正在做的是,如果数据库有0行,则启动activity1,否则启动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;

}

1 个答案:

答案 0 :(得分:1)

按照以下步骤操作。

1)创建一个活动(在清单中使用.. set launcher和main标签在清单中注册)

2)在第一步中,您现在创建了一个主要活动,Say Activity 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);


    }

}