0

私のアプリケーションは、「name」、「email」、「mobile」の 3 つのアイテムをデータベースの同じテーブルの下に格納します。それぞれの TEXTVIEW の下に値を表示できるように、それぞれに個別にアクセスしたいと考えています。1 つの関数ですべてにアクセスすると、値を表示できないため、個別にアクセスします。

現在、列から情報を取得するために、列ごとに関数を作成する必要があります。

「メール」を取得する例

public String getUserEmail(String mobile) {

        String[] columns = new String[] {USER_EMAIL};
        Cursor c = MainDataBase.query(REG_INFO_TABLE, columns, USER_MOBILE_NUMBER + "=" + mobile, null, null, null, null);

        String result = "";

        int email = c.getColumnIndex(USER_EMAIL);



        while(c.moveToNext()) {

            result = result + c.getString(email);

        }
        return result;

    }

そのため、「名前」が必要な場合は、上記のような別の関数を作成して取得する必要があります。

さて、50 個のそのような列にアクセスする必要がある場合、50 個のそのような関数を作成する必要がありますが、これはあまり良くありません。これを行う他の方法はありますか?ここで配列を使用できますか?

4

2 に答える 2

1

User各 のデータを保持するクラスを作成することを検討する必要がありますUser。次にgetAllRegInfo()、オブジェクトを返すように変更しUserます。Userこれには、アプリの残りの部分がs にのみアクセスし、データがどこから来たのか分からないという利点があります。また、書くことははるかに表現力豊かです

User user = getAllRegInfo();
String name = user.getName();

それよりも

String[] user = getAllRegInfo();
String name = user[0];

さらに、Userクラスは、すべてのデータを強制的に に変換するのではなく、任意のタイプのフィールドを持つことができますString

于 2013-08-17T20:08:10.997 に答える