2012-10-27 1 views
1

users라는 테이블 (_id, name)이있는 데이터베이스가 있습니다. 나는 간단한 사용하려고안드로이드; 커서를 통해 ListView를 채우는 방법

DBAdapter db= new DBAdapter(this); 

protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.lview); 
    ListView l=(ListView) findViewById(R.id.listView1); 
    db.open(); 
    Cursor c=db.getAllNames(); 
    db.close(); 
} 

을 다음과 같이 내가 지금은 목록 활동에 커서를 검색하고 이름

public Cursor getAllNames() { 
    return db.query(DATABASE_TABLE, new String[] { KEY_ROWID, KEY_NAME }, 
      null, null, null, KEY_NAME+" ASC", null); 
} 

의 오름차순으로 모든 레코드를 얻기 위해 다음과 같은 방법을 사용하고 커서 어댑터를 사용하여 이름을 반복하여 목록보기에 지정하십시오. 그러나 같은 것을 달성하는 방법을 감가 상각했기 때문에?

+1

https://github.com/lalit3686/CursorAdapter –

+0

@LalitPoptani는 예제 코드입니까? –

+0

예. 다운로드하여 확인 만하면됩니다. –

답변

2

BaseAdapter를 확장하고 항목의 ArrayList를 보유하는 사용자 지정 어댑터를 만들 수 있습니다. getAllNames()를 호출하고 커서에 모든 항목이 있으면 Cursor를 반복하고 CustomAdapter의 ArrayList에 모든 항목을 넣습니다. 그런 다음 CustomAdapter를 ListView 어댑터로 설정하면됩니다.

+1

나는 android를 처음 사용했습니다. 그래서 몇 가지 예제 문법을 보여 주시면 솔루션을 얻을 수 있습니다. –

+0

@Andrew, 더 나은 방법은 SimpleCursorAdapter를 사용하는 것입니다. –

+0

실제로. 이것은 단지 대안 일뿐입니다. –

3

SimpleCursorAdapter는 더 이상 사용되지 않으며 one of it's constructors has입니다. Cursor 데이터를 ListView에 첨부하려면 SimpleCursorAdapter 옵션을 사용하는 것이 가장 쉽기 때문에이 옵션을 강력하게 제안합니다. 새로운 SimpleCursorAdapter는 v4 지원 라이브러리에서 제공됩니다.

+0

이것은 허용 된 대답이어야합니다. ListView에 표시하기 위해 모든 항목을 복사 할 필요가 없습니다. –