0

私は完全に立ち往生しています。一日中レンガの壁に頭をぶつけていた!

私はクラスを持っています:

public class Main extends Activity. 

これにはいくつかのボタンがあります。2 つのボタンで、次のアクションを選択できるように、データベース テーブルが存在するかどうかをチェックするブール関数の結果を取得したいと考えています。

final Button reminderButton = (Button) findViewById(R.id.reminders);

reminderButton.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v){

        //This is where I want to get the result from the boolean function
        // and then either provide a toast msg OR start a new activity
    }   
});

以下はブール関数です

public boolean isTableExists(SQLiteDatabase db, String tableName) {
    if (tableName == null || db == null || !db.isOpen()) 
    {
        return false;
    }
    Cursor cursor = db.rawQuery("SELECT COUNT(*) FROM sqlite_master WHERE type = ? 
                         AND name = ?",new String[] { "table", tableName });
    if (!cursor.moveToFirst())
    {
        return false;
    }
    int count = cursor.getInt(0);
    cursor.close();
    return count > 0;
}

私の人生では、onclick に入れる構文を理解することはできません (View v){}

やってみた

public void onClick(View v) 
{
    isTableExists(null, null);
}

しかし、null、nullが正しいとは思いませんが、そこにはどのような引数が入りますか?

または私は完全に間違った方向に進んでいますか?

アドバイスをありがとう

4

1 に答える 1

2

あなたの投稿から、私はあなたがしたいことを理解していますcheck whether Table exists or not

このコードが役に立ちます。

public boolean isTableExists(String tableName, boolean openDb) {
    if(openDb) {
        if(mDatabase == null || !mDatabase.isOpen()) {
            mDatabase = getReadableDatabase();
        }

        if(!mDatabase.isReadOnly()) {
            mDatabase.close();
            mDatabase = getReadableDatabase();
        }
    }

    Cursor cursor = mDatabase.rawQuery("select DISTINCT tbl_name from sqlite_master where tbl_name = '"+tableName+"'", null);
    if(cursor!=null) {
        if(cursor.getCount()>0) {
                            cursor.close();
            return true;
        }
                    cursor.close();
    }
    return false;
}

このブール値に基づいて、アクションを実行できます。

于 2013-02-08T08:05:51.173 に答える