안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요...회색님...
최근 안드로이드 개발을 시작한 초보 개발자입니다.
회색님의 강좌를 잘 보고 있습니다...^^
샘플로 포함된 notepad를 통해서 contentprovider를 공부하고 있는데요...2가지 궁금한 사항이 있습니다...
1. NoteList project내에 NotePad.java라는 파일이 있습니다.
근데 이 파일이 "com.example.android.notepad", "com.google.provider" package에 각각 있습니다.
이게 꼭 둘 다 필요한건지요? 아니면 왜 이렇게 되어있는지 혹시 아시는지요?
2. 하기와 같이 제공된 notepadprovider를 사용하기위해 ListAdapter로 note의 title을 가져왔는데요...
이렇게하니깐 하기에 "Notes"라고 된 부분이 에러가 뜹니다.
import com.example.android.notepad.NotePad.Notes; <----요놈으로 import시켜주면 에러는 잡히는데 실행하면 안되구요
그래서 강제로 노트패드에 NotePad.java파일 복사해오니 잘 되는데
provider에 의해 제공된 데이터를 사용할때 꼭 URI가 선언된 부분의 동일한 클래스가 또 있어야 되나 싶네요...
-------------------------------------------------------------------------------------
public class ContentResolver extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Cursor c = getContentResolver().query(Notes.CONTENT_URI, null, null, null, null);
ListAdapter adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_1,
c,
new String[] {Notes.TITLE} ,
new int[] {android.R.id.text1});
setListAdapter(adapter);
-------------------------------------------------------------------------------------
긴 질문을 요약하면, 첨부된 그림처럼 Notepad.java가 꼭 이렇게 많이 필요한가요??
최근 안드로이드 개발을 시작한 초보 개발자입니다.
회색님의 강좌를 잘 보고 있습니다...^^
샘플로 포함된 notepad를 통해서 contentprovider를 공부하고 있는데요...2가지 궁금한 사항이 있습니다...
1. NoteList project내에 NotePad.java라는 파일이 있습니다.
근데 이 파일이 "com.example.android.notepad", "com.google.provider" package에 각각 있습니다.
이게 꼭 둘 다 필요한건지요? 아니면 왜 이렇게 되어있는지 혹시 아시는지요?
2. 하기와 같이 제공된 notepadprovider를 사용하기위해 ListAdapter로 note의 title을 가져왔는데요...
이렇게하니깐 하기에 "Notes"라고 된 부분이 에러가 뜹니다.
import com.example.android.notepad.NotePad.Notes; <----요놈으로 import시켜주면 에러는 잡히는데 실행하면 안되구요
그래서 강제로 노트패드에 NotePad.java파일 복사해오니 잘 되는데
provider에 의해 제공된 데이터를 사용할때 꼭 URI가 선언된 부분의 동일한 클래스가 또 있어야 되나 싶네요...
-------------------------------------------------------------------------------------
public class ContentResolver extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Cursor c = getContentResolver().query(Notes.CONTENT_URI, null, null, null, null);
ListAdapter adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_1,
c,
new String[] {Notes.TITLE} ,
new int[] {android.R.id.text1});
setListAdapter(adapter);
-------------------------------------------------------------------------------------
긴 질문을 요약하면, 첨부된 그림처럼 Notepad.java가 꼭 이렇게 많이 필요한가요??
2009.06.29 23:56:56
회색님 답변 감사합니다.
"com.google.provider" package내에 NotePad클래스는 지워도 에뮬상에서 잘 돌아가는것 확인했습니다...
그리고 2번째 질문이 아직 해결이 안되었는데요..
Cursor c = getContentResolver().query(Notes.CONTENT_URI, null, null, null, null);
getContentResolver 메소드를 사용해서 노트패드에서 작성한 CONTENT_URI를 가져왔는데요
import시켜도 에러가 안 잡히네요...ㅠ.ㅠ
요것도 좀 부탁합니다~~
"com.google.provider" package내에 NotePad클래스는 지워도 에뮬상에서 잘 돌아가는것 확인했습니다...
그리고 2번째 질문이 아직 해결이 안되었는데요..
Cursor c = getContentResolver().query(Notes.CONTENT_URI, null, null, null, null);
getContentResolver 메소드를 사용해서 노트패드에서 작성한 CONTENT_URI를 가져왔는데요
import시켜도 에러가 안 잡히네요...ㅠ.ㅠ
요것도 좀 부탁합니다~~
2009.06.30 18:47:47
제가 글쓰기 표현이 부족해서 이해가 잘 안가셨나봅니다...
바쁘신데 번거롭게해서 죄송합니다...ㅠ.ㅠ
요지를 다시 설명을 드리자면,
첨부된 파일과 같이 "com.example.android.notepad" NotePad클래스를 ContentResolver프로젝트내에 복사해와서
import시켜야만 에러가 잡힌다는 말이었습니다.
여기서 궁금한점은,
밑에 있는 NotePad클래스를 복사하는 방법외에 에러를 잡는 방법이 있는지요?
바쁘신데 번거롭게해서 죄송합니다...ㅠ.ㅠ
요지를 다시 설명을 드리자면,
첨부된 파일과 같이 "com.example.android.notepad" NotePad클래스를 ContentResolver프로젝트내에 복사해와서
import시켜야만 에러가 잡힌다는 말이었습니다.
여기서 궁금한점은,
밑에 있는 NotePad클래스를 복사하는 방법외에 에러를 잡는 방법이 있는지요?
- NotePad 클래스는 ContentProvider에 접근할때 쓰이는 Uri와 Column상수들을 모아놓은 것이라 ContentProvider를 사용하는 다른 프로젝트에서 가져다 쓰기 쉽게 하기 위해서 만들어놓은 것입니다. 여러군데 복사해서 쓰는 것은 문제 없습니다.