2012-04-24 8 views
0

SimpleCursorAdaptor 및 ListView를 사용하여 SQLite 데이터베이스 행의 값을 표시하고 있습니다. 내 행의 값 중 하나가 날짜 ('date'열)입니다. 이 날짜를 표시하는 대신 날짜를 기준으로 다른 문자열을 반환하는 메서드를 통해이 메서드를 실행해야합니다. 이 값은 데이터베이스에서 직접 가져온 실제 값이 아니라 목록에 표시하고자하는 값입니다.ListView 및 SimpleCursorAdaptor를 사용하여 행 값을 표시하기 전에 행 값을 어떻게 수정합니까?

간단히 말해, 데이터베이스 테이블 행의 값을 표시하기 전에 변경해야하는 값을 제외한 모든 값을 표시하고 싶습니다.

여기 내 코드입니다 :

public class BinCollectionDayListActivity extends ListActivity{ 
    // 
    private static final String fields[] = { "name", "date", BaseColumns._ID }; 
    // 
    public void onCreate(Bundle savedInstanceState) { 
     // 
     super.onCreate(savedInstanceState); 
     // 
     DatabaseHelper helper = new DatabaseHelper(this); 
     SQLiteDatabase database = helper.getWritableDatabase(); 
     Cursor data = database.query("names", fields, null, null, null, null, null); 
     CursorAdapter dataSource = new SimpleCursorAdapter(this, R.layout.binrow, data, fields, new int[] { R.id.name, R.id.date }); 
     dataSource.getCursor().requery(); 
     // 
     ListView view = getListView(); 
     view.setHeaderDividersEnabled(true); 
     setListAdapter(dataSource); 
     // 
     helper.close(); 
     database.close(); 
    } 
} 

당신은 내가 안드로이드 개발 꽤 새로운 오전과 가장 좋은 방법은 원하는 결과를 달성하는 것이 무엇인지 알고 싶어요 말할 수. 당신의 ArrayAdapter와에 커서 데이터를 ArrayAdapter와를 만들고 채우는 :

배열 어댑터 (선호) : 내가 전에 사용했던 사전에

감사합니다,

토니

+0

SimpleCursorAdapter를 직접 사용하는 대신. 별도의 배열을 만들고 그 배열에 값을 채우고 해당 배열을 setListAdapter (...)에 대한 매개 변수로 전달합니다. – kosa

답변

0

두 가지 옵션을 . http://anujarosha.wordpress.com/2011/11/17/how-to-create-a-listview-using-arrayadapter-in-android/

ViewBinder는 : 커서에, 당신은 설정/당신은 매핑 할 약의 데이터를 확인 할 수있는 ViewBinder를 지정, 거기에 몇 가지 논리를 수행하고, 필요한 경우 다른 결과를 뱉어 수 있습니다. 이것은 아마도 여러분이 찾고자하는 것이지만, ArrayAdapter는 여러분에게 더 잘 제어 할 수있는 경향이 있으므로 나중에 이것들을 바꾸는 것이 어려울 것입니다. Changing values from Cursor using SimpleCursorAdapter