마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Fragment에서 getSupportLoaderManager사용..

0 추천

getSupportLoaderManager().initLoader((int) System.currentTimeMillis(),
            null, new LoaderManager.LoaderCallbacks<Cursor>()

{
    @Override
    public Loader<Cursor> onCreateLoader(int id, Bundle args)

{
        String[] projectionFields = new String[]{ContactsContract.CommonDataKinds.Phone._ID,
                ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
                ContactsContract.CommonDataKinds.Phone.NUMBER};

        // Construct the loader
       
CursorLoader cursorLoader = new CursorLoader(Activity_SelectContact.this,
                //ContactsContract.Contacts.CONTENT_URI, // URI
               
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                projectionFields, // projection fields
               
null, // the selection criteria
               
null, // the selection args
               
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME // the sort order
       
);
        // Return the loader for use
       
return cursorLoader;
    }

    @Override
    public void onLoadFinished(Loader<Cursor> loader, Cursor contactCursor)

{

        while (contactCursor.moveToNext()) {
            String contactID = contactCursor.getString(contactCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone._ID));
            String name = contactCursor.getString(contactCursor.getColumnIndexOrThrow(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
            String contactNumber = contactCursor.getString(contactCursor.getColumnIndexOrThrow(ContactsContract.CommonDataKinds.Phone.NUMBER));

        }
    }

    @Override
    public void onLoaderReset(Loader<Cursor> loader) {
    }
});

 

 

위의 코드는 연락처를 읽어오는 코드로 인터넷에서 가져온 코드입니다. 이를 잘 활용하여서 쓰고있었는데, 이번에는 이 코드를 fragment상에서 사용해야해서 똑같이 복붙했더니 맨위의 getSupportLoaderManager라는 함수자체가 없다고나옵니다. getActivity().getSupportLoaderManager()역시 같은결과구요.. fragment에서 getSupportLoaderManager을 사용하기위해서 어떻게해야하는지 알려주시면 감사하겠습니다!!!! 감사합니다.

 

아! 참고로 이코드를 쓰는이유가, 다른 연락처 찾는코드는 이름 하나에 번호가 2개(이름 : 홍길동 /번호1 : 1234/ 번호2 : 3456) 이런식이면 1234만 찾고넘어가는데 이건 1234,3456 모두 찾기때문에 이거를 사용하고 싶은것입니다. 혹시 2개모두 찾을 수 있는 코드가 있다면 그걸 말씀해주셔도 감사하겠습니다.!!

앙띠앙앙 (710 포인트) 님이 2017년 8월 14일 질문
앙띠앙앙님이 2017년 8월 14일 수정

1개의 답변

+1 추천

((FragmentActivity)getActivity()).getSupportLoaderManager()

http://kanghk.tistory.com/3

로더매니저가 불필요하다면 상단의 소스를 AsyncTask를 통해 구현하세요.

익명사용자 님이 2017년 8월 14일 답변
2017년 8월 14일 수정
감사합니다!!이렇게하면되네요!!!ㅎㅎㅎ
...