0

私がやっていることは、データベースに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;

}
4

1 に答える 1

1

以下の手順に従ってください。

1)アクティビティを作成します(マニフェストに登録します。マニフェストにランチャーとメインタグを設定します)

2)ステップ1で、メインアクティビティを作成しました。アクティビティAと言います。

3)AのonCreate()メソッドでは、データベースのメソッドをフェッチして、データベースにいくつかの値があるかどうかを確認します。

4)ステップ3でdbがnullを返した場合は、activity1を開始できます。それ以外の場合は、uが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 に答える