2013-07-05 2 views
8

나는이 코드를 사용하여 모든 된 SharedPreferences 웁니다 내 응용 프로그램에서 버튼 구현 : 이제활동을 다시 열지 않고 새로 고침 하시겠습니까?

context.getSharedPreferences("bifrostPrefs", 0).edit().clear().commit(); 

을 문제 I 버튼을 사용할 때마다, 나는 다음 활동을 종료하고 다시 엽니 결과를 볼 필요가있다 . 내가 활동 오픈을 다시하는 경우, 그때 두 번 다시 버튼을 누를 필요가 있음을 발견 할 때까지

Intent reOpen = new Intent (Bifrost.this, Bifrost.class); 
startActivity(reOpen); 

내 생각은 스마트 듯 : 나는 단순히 버튼이 코드와 함께 활동을 다시 열함으로써이 문제를 해결 시도 주 활동으로 돌아 가야합니다. 그래서 일부 조직 reserach를했고,이 코드를 발견 :이 지금은 잘 작동

finish(); 
startActivity(getIntent()); 

, 활동이 갱신됩니다를 한 후 나는 한 번만 다시 버튼을 클릭해야합니다. 그러나 그것없이 "깜박"하지 않고 활동을 새로 고치는 또 다른 방법이 있습니까? 알다시피, 새로운 액티비티를 열 때마다 깜박 거리며 앱이 잠시 뒤처집니다. 이것을 우회하여 활동을 새로 고치는 방법이 있습니까?

+0

애니메이션없이 전달 의도 – QuokMoon

답변

15

글쎄, 활동의 내용을 업데이트하는 것이 좋습니다 것입니다,하지만 너무 복잡 경우는이 방법으로 기본 애니메이션을 재정의 할 수 있습니다 : 당신이 플래그 Intent.FLAG_ACTIVITY_NO_ANIMATION (link)를 추가 할 수 있습니다

finish(); 
overridePendingTransition(0, 0); 
startActivity(getIntent()); 
overridePendingTransition(0, 0); 
+0

예! 이것은 정확히 내가 찾고 있었던 것입니다. 앱은 내가 의도 한대로 작동하며, 더 이상의 합병증은 필요 없습니다. 고맙습니다! – Guy

+0

도 저에게 효과적입니다! – publicknowledge

+0

이것은 또한 나를 위해 일했습니다. 간단한 솔루션. –

0

공유 환경 설정의 값을 기준으로 값/크기를 변경할 수있는보기가 있습니까? 그렇다면 뷰를 초기화하고 onCreate() 메서드 및 onClick() 메서드에서 해당 메톤을 호출하는 메서드를 만듭니다.

1

reOpen 모든 애니메이션을 최하위화하려고합니다. 그러나 다른 대답에서 설명한 바와 같이 더 나은 데이터를 새로 고침 Activity.

+0

이것은 영리합니다! –

관련 문제