2012-12-29 2 views
1

내 ListView는 현재 하나의 열 데이터 만 표시 할 수 있습니다. 두 개의 열 데이터를 표시하고 싶습니다.ListView에서 동일한 테이블의 둘 이상의 열 데이터를 표시하는 방법은 무엇입니까?

public Cursor getDataforDisplay() {  

    String[] columns = new String[] {KEY_ROWID, PROJECT_NAME, PROJECT_FINISH_DATE, PROJECT_DIFFICULTY, PROJECT_STATUS}; 
    Cursor c = projectDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null); 

    projectDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null); 

    c.moveToFirst(); 
    return c; 

} 

가 나는 또한 _id

으로 정의된다 KEY_ROWID를 표시하려면 : 여기
public class ProjectExplorer extends ListActivity { 

private projectdatabase database; 
protected Cursor cursor; 
protected ListAdapter adapter; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    database = new projectdatabase(ProjectExplorer.this); 

    getinfo(); 
} 

private void getinfo() { 

    database.open(); 
    cursor = database.getDataforDisplay(); 
    adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, cursor, new String[] {"project_name"}, new int[] { android.R.id.text1 }, 0); 
    setListAdapter(adapter); 

} 

@Override 
public void onListItemClick(ListView parent, View view, int position, long id) { 

    super.onListItemClick(parent, view, position, id); 

    Cursor c = ((SimpleCursorAdapter)parent.getAdapter()).getCursor(); 
     c.moveToPosition(position); 

     // get project name here 

     String str_projectname= c.getString(c.getColumnIndex("project_name")); 

     Toast.makeText(this, str_projectname, Toast.LENGTH_LONG).show(); 


}  

커서를 반환 데이터베이스 클래스의 방법입니다 : 여기

내 ListView에 대한 코드입니다

답변

3

android.R.layout.simple_list_item_2 데이터를 검색 할 수있는 테이블의 2 번 열을 지정하고 표시 할 수있는 위치를 지정합니다 활동 - 또한 사용자 정의에 어댑터 자신의 목록보기를 지정하고 스크래치와 사용자 모두에서 그것을 생성을 만들 수 있습니다

adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, cursor, new String[] {"project_name","column_no2"}, new int[] { android.R.id.text1, andriod.R.id.text2 }, 0); 

을 android.R.id.text2.

1

내 생각에 최소한 이것을 달성하는 가장 좋은 방법은 사용자의 ListView에 대한 사용자 지정 어댑터를 만드는 것입니다.이 경우 단일 목록보기 요소의 모양을 사용자가 직접 설정할 수 있습니다. Cursor을 사용하여 일부 배열을 채우고 사용자 지정 어댑터로 설정하십시오.

관련 문제