안드로이드 개발 질문/답변
(글 수 45,052)
리소스를 만들어서 스피너를 사용할 때는 아래처럼 잘 동작 하였습니다. 하지만 이러한 방법은
추가/삭제가 불가능해서
분류를 DB에 저장하고, DB 내용과 스피너와 연동해서 사용하려고 했습니다.
그래서 sqlite DB를 만들고 스피너와 어렵게 연결은 했습니다. 그런데...아래와 같이 깔끔한 UI를 만들어 지지 않습니다.
도와 주십시오.
dbAdapter = new NotesDbAdapter(this); dbAdapter.open(); Cursor c = dbAdapter.fetchfield_duplication_Notes(); startManagingCursor(c); spin.setOnItemSelectedListener(this);
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="category"> <item>통합포인트</item> <item>외식/커피</item> <item>통신</item> </string-array> </resources>
여기까지 리소스를 이용해서 깔끔한 UI를 구현한 방법이였고...
아래는 DB에 저장된 내용을 스피너와 연결한 내용입니다. 막~ 이것저것 보면서 어렵게 한거라. 잘 만든건지 모르겠습니다.
//모든 데이터의 커서를 얻어옴 Cursor c = dbAdapter.fetchAllNotes_category(); // Base 클래스에게 Cursor의 라이프사이클을 관리시킴 startManagingCursor(c); //리스트뷰에 데이터베이스의 저장된 데이터를 연결 String[] from = new String[] {BaseColumns._ID, NotesDbAdapter.KEY_CATEGORYNAME}; int[] to = new int[] { R.id._id, R.id.CategoryName_text }; mAdapter= new SimpleCursorAdapter(this, R.layout.note_row_categoryname, c, from, to); mAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spin.setAdapter(mAdapter);
이렇게 구현하니...DB에 있는 내용을 스피너로 클릭할 수 있습니다. 하지만 아래와 같이 이상하게 나타납니다.
아무 것도 보이지는 않지만...그래도 DB에 있는 내용이 순서대로 배열되어 있습니다.
layout 을 설정해줘야 할 것 같은데....도통 감을 못 잡겠습니다.
고수님의 만은 답변 부탁드립니다...
감사합니다.