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

안드로이드 alert를 이용하여 종료버튼을 만들려고합니다.

0 추천
  
public class MainActivity extends Activity {

 private WebView mWebView;

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

  setLayout();

  mWebView.getSettings().setJavaScriptEnabled(true); //

  mWebView.setWebViewClient(new WebViewClient() {

  });

  mWebView.setWebChromeClient(new WebChromeClient() {

  });

  mWebView.loadUrl("http://www.naver.com/");
 }

 @Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
  if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
   mWebView.goBack();
   return true;
  }
  return super.onKeyDown(keyCode, event);
 }

 private class WishWebViewClient extends WebViewClient {

  @Override
  public boolean shouldOverrideUrlLoading(WebView view, String url) {
   view.loadUrl(url);
   return true;
  }
 }

 private void setLayout() {
  mWebView = (WebView) findViewById(R.id.WebView1);
 }

 @Override
 public void onBackPressed() {
  // TODO Auto-generated method stub
  // super.onBackPressed();
  if (mWebView.canGoBack()) {
   mWebView.goBack();
  } else {
   finish();
  }
 }
}

위구문에  아래 소스코드를  넣으려고 합니다...

2~3일동안 해봤는데  잘안됩니다.  어떻게 하면 ...뒤로가기 버튼 눌렀을때   종료 파업창이 뜰까요?

 

 public boolean onKeyDown1(int keyCode, KeyEvent event) {
  switch (keyCode) {
  case KeyEvent.KEYCODE_BACK:
   String alertTitle = getResources().getString(R.string.app_name);

   new AlertDialog.Builder(MainActivity.this)
     .setTitle(alertTitle)
     .setMessage("종료하겠습니까?")
     .setPositiveButton("예",
       new DialogInterface.OnClickListener() {

        public void onClick(DialogInterface dialog,
          int which) {
         moveTaskToBack(true);         
         finish();
 
        }
       }).setNegativeButton("아니오", null).show();
  }

  return true;
 }

 

k개발자 (160 포인트) 님이 2015년 1월 24일 질문
k개발자님이 2015년 1월 24일 수정

2개의 답변

0 추천

public boolean onKeyDown(int keyCode, KeyEvent event) {

if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
     mWebView.goBack();
     return true;
} else if (keyCode == KeyEvent.KEYCODE_BACK) {
    여기서 다이얼로그를 뛰워보심은???
    return true;
}
return super.onKeyDown(keyCode, event);
}
 
onBackPressed() 이부분은 막아놓고 위와 같이 함 해보셔요
nicehee (73,100 포인트) 님이 2015년 1월 24일 답변
설치시  설치버튼이 활성화가 안되네요..;;   저도 이렇게 해봤습니다...모두 앱이  에뮬레이터에선 동작하고 실제폰에선 설치가 안되네요..
설치가 안되는 이유가 있을겁니다.
콘솔로그와 에러로그가 있으면 함 올려보셔요
화면 색상프로그램 일종인 어플이 실행되면 설치가 안되네요^^;
(블루라이트 같은..어플인거죠.)그리고...  public void onBackPressed() 여기에  넣으니깐.. 되네요.    도움주셔서 감사합니다.
0 추천

전 아래처럼 구현했었어요.

 

 

    private void createEndingPopup()
    {
    String strEndingInfo = "";
    strEndingInfo = "정말 종료하시겠습니까?";
 
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage(strEndingInfo)
    .setCancelable(false)
    .setPositiveButton("OK", new DialogInterface.OnClickListener() {
 
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
finish();
}
   
    })
    .setNegativeButton("No", new DialogInterface.OnClickListener() {
 
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
bEnding = false;
}
});
    AlertDialog alert = builder.create();
    alert.show(); 
    }    
 
    
 
public boolean onKeyDown(int keyCode, KeyEvent event) 
{         
if (keyCode == KeyEvent.KEYCODE_BACK) 
{             
//Toast.makeText(ARAptLand.this, "ending", Toast.LENGTH_SHORT).show();
createEndingPopup();
if (!bEnding) {
return false;
} else {
finish();
}
}         
 
return super.onKeyDown(keyCode, event);     
}
익명사용자 님이 2015년 1월 24일 답변
이걸 사용하자니... private class WishWebViewClient extends WebViewClient   여기에서  오류가 뜨는군요;;  머리가 복잡하네요...;;
...