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

자꾸 오류가 생기면서 종료되는데 이 코드에 문제가 있나요?

0 추천
public class MainActivity extends AppCompatActivity {
    TextView message;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        message = (TextView) findViewById(R.id.textView);
        Button button = (Button) findViewById(R.id.button);

        assert button != null;
        button.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                String phoneNumber = null;
                String NUMBER = ContactsContract.CommonDataKinds.Phone.NUMBER;
                ContentResolver cr = getContentResolver();

                Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);

                if (cur.getCount() > 0) {
                    while (cur.moveToNext()) ;
                    {
                        String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
                        String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                        if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.
                                Contacts.HAS_PHONE_NUMBER))) > 0) {

                            //Contacts 테이블의 ID 값 을 가지고 Data 테이블의 정보를 찾아오는 방식.
                            message.append("\nNAME:" + name);
                            Cursor pCur = cr.query(ContactsContract.Data.CONTENT_URI, null,
                                    ContactsContract.Data.CONTACT_ID
                                            + "=?"
                                            + " AND "
                                            + ContactsContract.Data.MIMETYPE
                                            + "='"
                                            + ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE
                                            + "'", new String[]{id}, null);

                            //전화번호 데이터 추출!!!!
                            while (pCur.moveToNext()) {
                                phoneNumber = pCur.getString(pCur.getColumnIndex(NUMBER));
                                message.append("\nPhHONE NUMBER :" + phoneNumber);
                            }
                            pCur.close();
                            message.append("\n\n");

                        }
                    }
                }
            }
        });
    }
}
블래기이 (140 포인트) 님이 2016년 3월 19일 질문

4개의 답변

0 추천
이런식의 질문은 답변 얻기 어렵습니다.

에러 관련 질문은 최소한 에러 메시지를 보여주셔야 하고요.

아주 복잡한 문제가 아닌 이상 검색해보거나 자신이 스스로 해결하는 습관을 들여야 됩니다.

안그럼 실력이 안늘어요..

코드를 보아하니 어려운 문제는 아닌거 같습니다.

문제에 대해서 분석하고 해결하는 능력을 키워보세요.
클린코드 (300 포인트) 님이 2016년 3월 20일 답변
프로그래밍에 대한 지식이 전무했다가 급하게 안드로이드부터 공부한지 1달째입니다. ㅠㅠ 많이 부족하지만 열심히 하겠습니다 ㅠㅠ
0 추천
String phoneNumber
 String NUMBER
여기 선언된곳에 예외처리 한번해보시는게?? 왠지 nullpoint 떨어지는듯한 기분이
로그켓이없으면 정확히 말씀드리기 얘매해여
sadeva (21,550 포인트) 님이 2016년 3월 21일 답변
다음부터는 꼭 로그켓 확인해서 같이 드리겠습니다!!
0 추천
로그캣 같이 남겨주세요! ㅎㅎ
허기여미 (140 포인트) 님이 2016년 3월 28일 답변
다음부터는 로그켓도 꼭 같이 올리겠습니다 ㅠㅠ
0 추천
Cursor cur ..

이 다음에

cur.moveToFirst(); 처리하세요.

로그보면 아마 index 에러 나올 것 같은데요.
개발자초심 (21,220 포인트) 님이 2016년 3월 30일 답변
...