2011-11-15 24 views
0

次のコードを使用して、sqliteから特定のレコードをフェッチします。sqliteからフェッチされたレコードを表示できません

public String getDetails(long phone) throws SQLException{ 
    Cursor mCursor = db.query(true, DATABASE_TABLE, new String[] {NAME, AGE, AREA, PHONE, SEX}, PHONE + "=" + phone, null, null, null, null, null); 
    if(mCursor != null){ 
     mCursor.moveToFirst(); 
    } 
    String result = mCursor.getString(mCursor.getColumnIndex(NAME)); 
    return result; 
} 

そして私は、レコードがフェッチ取得し、TextViewの中の「name」フィールドを表示することができるよさ

dbAdapterExisting.read(); 
String temp = dbAdapterExisting.getDetails(mobile); 
dbAdapterExisting.close(); 
textViewExistingName.setText(temp); 

以下のコードで別のクラスからこのメソッドを呼び出していますが、私はどのようにフェッチしますすべてのフィールド、すなわち、「年齢」、「面積」、「性別」、および異なるテキストビューで表示します。

答えて

0

を取得するためのあなたのgetDetails()方法は単一の文字列を返すので、あなたが複数のアイテムを取得したい、あなたはいくつかのことを変更する必要があります。 Mapsは、このようにデータを返すための優れたデータ構造です。たとえば:

Map<String, Object> temp = dbAdapterExisting.getDetails(mobile); 
// get the name: 
String name = temp.get(dbAdapterExisting.NAME); 
// etc.. 
+0

ありがとう、このコードは絶対にうまくいった。 – User210282

1

以下のとおりです。 私はセックスを得る例を示します。

String sex = mCursor.getString(mCursor.getColumnIndex(SEX)); 

は、使用float型、ダブル、整数値 mCursor.getFloat /ダブル/整数

+0

おかげで、私は複数のものを取り出したとして、以下のヘルプが提供:

public Map<String, Object> getDetails(long phone) throws SQLException{ Map<String, Object> map = new HashMap<String, Object>(); Cursor mCursor = db.query(true, DATABASE_TABLE, new String[] {NAME, AGE, AREA, PHONE, SEX}, PHONE + "=" + phone, null, null, null, null, null); if(mCursor != null){ mCursor.moveToFirst(); } String name = mCursor.getString(mCursor.getColumnIndex(NAME)); map.put(NAME, name); String age = mCursor.getString(mCursor.getColumnIndex(AGE)); map.put(AGE, age); String area = mCursor.getString(mCursor.getColumnIndex(AREA)); map.put(AREA, area); map.put(PHONE, phone); String sex = mCursor.getString(mCursor.getColumnIndex(SEX)); map.put(SEX, sex); return map; 

}

その後、地図を使用するあなたの呼び出し元のコードスイッチに代わりに返さクリスは完璧に働いた。 – User210282

関連する問題