안드로이드 개발 질문/답변
(글 수 45,052)
CursorAdapter 를 간단하게 확장해서
class VocaUnivAdapter extends CursorAdapter implements ListAdapter{ private TransVocaDataManager mTransVocaDataManager; public VocaUnivAdapter(Context context, Cursor cursor){ super(context, cursor, true); } @Override public View newView(Context context, Cursor cursor, ViewGroup parent){ View view = null; if(view == null){ LayoutInflater inflater = LayoutInflater.from(context); view = inflater.inflate(R.layout.vocauniv_list, parent, false); } bindView(view, context, cursor); return view; } @Override public void bindView(View view, Context context, Cursor cursor){ TextView text1 = (TextView) view.findViewById(R.id.vocaUnivNo); TextView text2 = (TextView) view.findViewById(R.id.vocaUnivName); text1.setText(cursor.getString(cursor.getColumnIndex(mTransVocaDataManager.NO))); text2.setText(cursor.getString(cursor.getColumnIndex(mTransVocaDataManager.UNIVNAME))); return; } }
그리고
public void refreshList(){ Cursor c = mDm.getAllUniversity(); startManagingCursor(c); c.moveToFirst(); while(!c.isAfterLast()){ Log.i("UnivList Select", c.getString(1)); c.moveToNext(); } c.close(); univList = (ListView) findViewById(R.id.vocaList); univList.setAdapter(new VocaUnivAdapter(this, c)); }
이렇게 구현했습니다. Log에는 불러온 데이터가 전부 찍힙니다만
list에는 데이터가 전혀 보이지 않습니다.
(CursorAdapter 말고 BaseAdapter를 확장해서 ArrayList에 데이터를 저장하고 아답타에 ArrayList를 넣어주는 방식으로도 구현해보았으나 데이터가 마지막 데이터만 출력됩니다.)
기존 즐겨찾기를 구현할 때도 BaseAdapter을 확장해서 유사하게 구현했는데 데이터를 불러올 때 전혀 이상이 없었습니다.
CursorAdapter의 requery라는 장점때문에 CursorAdapter을 통해서 구현하려하는데 화면에 출력이 안되네요.
이걸 어떠게 해결해야할까요?