2013-10-06 3 views
0

SQLite 데이터베이스에서 데이터를 채우는 SimpleCursorAdapter가 있습니다. 그것은 잘 작동하지만, "지속 기간"열은 밀리 초 단위로 표시되며 표시하기 전에 기간 (1000 분의 1)으로 나누고 싶습니다. DB에 다른 기간 (분) 열을 저장하지 않고도 가능합니까?SimpleCursorAdapter - ListView에로드하기 전에 데이터 수정

어댑터 :

adapter = new SimpleCursorAdapter(getActivity(), 
R.layout.rec_list_items, 
db.selectAllRecords(), 
new String[] { "day", "hour", "minute", "duration", "link" }, 
new int[] { R.id.textView_day, R.id.textView_hour, R.id.textView_minute, R.id.textView_duration, R.id.textView_link }, 
CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER); 

selectAllRecords가 :

public Cursor selectAllRecords() { 
    String[] cols = new String[] {ID, DAY, HOUR, MINUTE, DURATION, LINK}; 
    Cursor mCursor = database.query(true, TABLE,cols,null 
      , null, null, null, null, null); 
    if (mCursor != null) { 
     mCursor.moveToFirst(); 
    } 

    return mCursor; 
} 

답변

0

여기에 옵션이 몇 가지있다 :

하나는 사용자 정의 SimpleCursorAdapter를 만들고 setViewText을 무시하는 것입니다(). 귀하의 구현에서 문제의 textview가 전달되었는지 확인하고 원하는 값으로보기 값을 설정하십시오. 당신은 String에서 int로 변환하거나 (또는 ​​부동 소수점, 당신이 필요로하는) ​​당신의 정밀도를 적용해야합니다.

다른 하나는 SimpleCursorAdapter.ViewBinder를 구현하고 어댑터의 setViewBinder에서 바인더로 설정하고 바인더의 setViewValue에서 작업하십시오.

관련 문제