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

안드로이드 다이얼로그에 대해 질문드립니다.

0 추천

안녕하세요. 이번에 안드로이드 프로젝트를 진행하게된 학생입니다.

제가 거리에 따라 길안내를 하다가

목적지 부근에 도착하면 도착알림을 다이얼로그로 띄워주려고 합니다.

그런데, 이 다이얼로그가 처음 시작할때 거리가 if 문 안에 숫자인 59 안이면 바로 다이얼로그가 생성되는데,

길안내를 진행하다가 거리수치가 낮아지고 65->60->57(59이내로 들어감) 이렇게 되면,

다이얼로그가 출력되지 않습니다..

그안에 로그는 출력되는데 말이죠...;;

 

먼저 그 부분 코드는 이렇습니다.

 

if(distance<=70) // 70m 이내
{
    mOverlayview.setdata(node.get(a).index, node.get(a).nodeType, node.get(a).turntype, distance);
    Log.d(TAG, "찍히나 확인 = " + node.get(a).turntype );

    if(distance<=59) // 59m 이내
    {
        Log.d(TAG, "찍히나 확인2 = " + node.get(a).turntype );
        if(node.get(a).turntype.equals("목적지"))
        {
            Log.d(TAG, "찍히나 확인3");

            AlertDialog.Builder dlg = new AlertDialog.Builder(this);
            dlg.setTitle(" 도착 알림");
            dlg.setMessage("목적지에 도착하였습니다. 새로운 길 안내를 원하십니까?");

            dlg.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    // MainActivity 로 이동
                    Intent intent = new Intent(getApplicationContext(),MainActivity.class);
                    startActivity(intent);
                    finish();
                }
            })
                    .setNegativeButton("No", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            //moveTaskToBack(true);
                            finish();
                            //dialog.cancel();

                        }
                    }).create().show();
           
            //endguide(node.get(a).turntype);//도착 알림 alertdialog
           //Toast.makeText(getApplicationContext(), "목적지에 도착하였습니다. 경로를 종료합니다", Toast.LENGTH_LONG);

        }
        else//현 노드가 전체 노드 사이즈보다 클경우
        {
            i=0;
            check(a+1); // point 노드 지점을 찾을때까지 증가(check함수는 현부분의 코드를 모두 포함하고 있음.)
            //Toast.makeText(this,"다음 경유지를 알려드리겠습니다.",Toast.LENGTH_SHORT).show();
        }
    }
    else
    {
        thread = new RequestThread();
        thread.start(); //check 함수를 일정시간마다 불러옴  (재귀함수)
    }
}

입니다...

로그를 보시게 되면,


이렇게 잘 진행되다가 목적지 도착시 로그가 출력하게되는데요.. (이때는 재귀멈춤)

다이얼로그는 처음 시작할때 59m 이내에 들어가 있을 시만 뜨고

서서히 거리가 줄어 도달하게되면 뜨질 않네요.. 뭐가 문제인지, 계속 고민도 하고 시도도 해보고 있는데,,

지식이 부족하여 질문드립니다.

답변주시면 정말 감사드리겠습니다.

kyungss (120 포인트) 님이 2016년 10월 30일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...