Programing

활동에서 뒤로 버튼을 처리하는 방법

lottogame 2020. 7. 4. 10:35
반응형

활동에서 뒤로 버튼을 처리하는 방법


활동에서 뒤로 단추를 처리하는 방법. 버튼이있는 곳. 버튼 중 하나를 클릭하면 필요한 버튼으로 리디렉션됩니다. 제대로 작동하지만 뒤로 버튼을 누르면 완료됩니다.

이 문제를 해결하는 방법. 모든 버튼에 대해 하나의 활동 만 있습니다. 미리 감사드립니다.

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) 
   {
        if ((keyCode == KeyEvent.KEYCODE_BACK)) 
        {
            return false; //I have tried here true also
        }
        return super.onKeyDown(keyCode, event);
   }

위의 코드를 사용하여 뒤로 버튼을 처리했지만 작동하지 않습니다. 뒤로 버튼을 누르면 그 자체가 충격을 받았습니다.


다음과 같이 처리 할 수 ​​있습니다.

API 레벨 5 이상

@Override
public void onBackPressed() {
    // your code.
}

API 5 이전

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        // your code
        return true;
    }

    return super.onKeyDown(keyCode, event);
}

위의 것 외에도 개인적으로 권장합니다

onKeyUp():

, 프로그램 말하기 사용자가 처음에 키를 눌렀을 때 실행됩니다를 keyDown 하지만, 그것은 것입니다 사용자가 우울 키를 유지하면서 반복합니다. *

이것은 모든 개발 플랫폼에 적용됩니다.

Google 개발팀은 뷰에서 BACK 버튼을 가로채는 경우 keydown에서 starttracking으로 KeyEvent를 추적 한 다음 keyup으로 호출해야한다고 제안했습니다.

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK
            && event.getRepeatCount() == 0) {
        event.startTracking();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

public boolean onKeyUp(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking()
            && !event.isCanceled()) {
        // *** Your Code ***
        return true;
    }
    return super.onKeyUp(keyCode, event);
}

하드웨어 장치 뒤로 버튼과 소프트 홈 (뒤로) 버튼 (예 : "<-"모두에 대해 이것이 나에게 효과적입니다. (*주의 활동에 앱 바 / 툴바가 있습니다)

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            //finish();
            onBackPressed();
            break;
    }
    return true;
}



@Override
public void onBackPressed() {
   //Execute your code here
   finish();

}

건배!


가장 간단한 방법은 뒤로 버튼 누름을 캡처하고 다음과 같이 moveTaskToBack (true)를 호출하는 것입니다.

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

Android 2.0에는 새로운 onBackPressed 메소드가 도입되었으며 Back 버튼을 처리하는 방법에 대한 권장 사항


다음을 사용해야합니다.

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR
            && keyCode == KeyEvent.KEYCODE_BACK
            && event.getRepeatCount() == 0) {
        // Take care of calling this method on earlier versions of
        // the platform where it doesn't exist.
        onBackPressed();
    }

    return super.onKeyDown(keyCode, event);
}

@Override
public void onBackPressed() {
    // This will be called either automatically for you on 2.0
    // or later, or by the code above on earlier versions of the
    // platform.
    return;
}

여기에 정의 된대로 : http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html

If you are using an older version to compile the code, replace android.os.Build.VERSION_CODES.ECLAIR by 5 (you can add a private int named ECLAIR for example)


This helped me ..

@Override
public void onBackPressed() {
    startActivity(new Intent(currentActivity.this, LastActivity.class));
    finish();
}

OR????? even you can use this for drawer toggle also

@Override
public void onBackPressed() {
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    if (drawer.isDrawerOpen(GravityCompat.START)) {
        drawer.closeDrawer(GravityCompat.START);
    } else {
        super.onBackPressed();
    }
        startActivity(new Intent(currentActivity.this, LastActivity.class));
    finish();

}

I hope this would help you.. :)


This is a simple way of doing something.

    @Override
        public void onBackPressed() {
            // do what you want to do when the "back" button is pressed.
            startActivity(new Intent(Activity.this, MainActivity.class));
            finish();
        }

I think there might be more elaborate ways of going about it, but I like simplicity. For example, I used the template above to make the user sign out of the application AND THEN go back to another activity of my choosing.

참고URL : https://stackoverflow.com/questions/5312334/how-to-handle-back-button-in-activity

반응형