2012-04-12 2 views
1

에 SQLite는 내가 데이터베이스 SQL의 요소를 보여줍니다리스트 뷰를 만드는 데 도움이 필요합니다 .. 처음에 는 ID 3 개 필드 텍스트 뷰와 작은 XML 레이아웃을 만들었습니다. 나는 데이터베이스 클래스를 만든 후 나는 안드로이드 : 내 활동 <code>Text1,Text2 and Text3</code> 한 목록보기 : ListView를

public class APdatabaseClass extends SQLiteOpenHelper { 

    private static final String DATABASE_NAME = "APdatabase"; 
    private static final int DATABASE_VERSION = 1; 

    public APdatabaseClass(Context context) { 
     super(context, DATABASE_NAME , null, DATABASE_VERSION); 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 

     String sql = "CREATE TABLE {0} ({1} INTEGER PRIMARY KEY AUTOINCREMENT," + 
       " {2} TEXT NOT NULL,{3} TEXT NOT NULL,{4} TEXT NOT NULL,{5} TEXT NOT NULL,{6} TEXT NOT NULL, {7} TEXT NOT NULL);"; 
      db.execSQL(MessageFormat.format(sql, TableRegistry.TABLE_NAME, TableRegistry._ID, 
       TableRegistry.TYPE, TableRegistry.DATE, TableRegistry.STATUS, TableRegistry.NUMBER, TableRegistry.MESSAGE, TableRegistry.OTHER)); 

    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 

     // Drop older table if existed 
     db.execSQL("DROP TABLE IF EXISTS " + TableRegistry.TABLE_NAME); 

     // Create tables again 
     onCreate(db);  
    } 

지금 어떻게 내 데이터베이스가 SimpleCursorAdapter 또는 뭔가 내 활동 목록보기에 연결합니까 .. 인터페이스

public interface TableRegistry extends BaseColumns{ 

    String TABLE_NAME = "Registry"; 

    String TYPE = "Type"; 
    String DATE = "Date"; 
    String STATUS = "Status"; 
    String NUMBER = "Number"; 
    String MESSAGE = "Message"; 
    String OTHER = "Other"; 

    String[] COLUMNS = new String[] 
       { _ID, TYPE, DATE, STATUS, NUMBER, MESSAGE, OTHER }; 
      } 

의 열을 그룹화 한 후? 나는 함께 3 텍스트 뷰 필드를 채울 필요

TableRegistry.TYPE, TableRegistry.DATE, TableRegistry.STATUS. 

감사 사전에!

답변

2

보인다. 여기에 내가 일반적으로 그것을 할 방법은 다음과 같습니다

먼저 정보를 가져 오기 위해 데이터베이스 도우미의 방법을 만들 당신이 원하는 :

public Cursor fetchListData() { 
    return mDb.query(TableRegistry.TABLE_NAME, new String[] { TableRegistry._ID, 
     TableRegistry.TYPE, TableRegistry.DATE, TableRegistry.STATUS }, null,null, 
     null, null, null); 
} 

을 다음 목록 작성하려면 어떤 클래스 :

APdatabaseClass mDbHelper = new APdatabaseClass(getActivity()); 
mDbHelper.open(); 

Cursor c = fetchListData(); 
getActivity().startManagingCursor(c); 

String[] from = new String[] { TableRegistry.TYPE, TableRegistry.DATE, TableRegistry.STATUS }; 
int[] to = new int[] { R.id.Text1, R.id.Text2, R.id.Text3 }; 
SimpleCursorAdapter data = new SimpleCursorAdapter(getActivity(), R.layout.yourlistlayout, c, from, to); 
setListAdapter(data); 

을 ListFragment 또는 ListActivity를 사용한다고 가정합니다. 그렇지 않은 경우 어댑터 설정 방법이 약간 다릅니다.

희망이 도움이됩니다.

+0

답변 해 주셔서 감사합니다! – Tony

0

예 이제 raqQuery() 메서드를 사용하여 쿼리를 실행하면 결과로 커서가 표시됩니다.

이제 커서를 반복하고 데이터를 가져와야합니다. 당신은 추가 작업의 비트에가는 것 같은 예를 들어

Cursor cur = db.raqQuery("Select * from myTable",null); 
if (cur != null) { 
    if (cur.moveToFirst()) { 
     do { 
      cur.getString(cur.getColumnIndex("Name"))); // "Name" is the field name in table 
     } while (cur.moveToNext()); 
    } 
} 
+0

답변 해 주셔서 감사합니다. – Tony

관련 문제