2014-05-14 4 views
0

나는 앱을 만들지 만 기본적으로 두 가지가 있지만 홈 화면은 비슷합니다. 개인용으로 지정된 홈 화면과 업무용으로 사용되는 홈 화면이 있습니다. 두 홈 화면은 해당 홈 화면에 해당하는 응용 프로그램을 시작할 수있는 실행 프로그램입니다. 사용자가 이미 내 앱을 홈 스크린으로 설정 한 경우 홈 액티비티를 쉽게 전환 할 수 있습니까?

지금 내 홈 화면이 방법을 설정 : 나는 개인 응용 프로그램을 시작하고 내가 비즈니스 홈 오전 때, 그것은 개인 애플 리케이션의 홈 화면으로 이동하려면 홈을 눌러

ComponentName component = new ComponentName(HomeScreen1.class.getPackage().getName(), HomeScreen1.class.getName()); 
packageManager.setComponentEnabledSetting(component, packageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); 

Intent intent = new Intent(Intent.ACTION_MAIN); 
intent.addCategory(Intent.CATEGORY_HOME); 
intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); 
startActivity(intent); 

Screen (첫 번째 홈 화면에서 버튼을 눌러 다른 액티비티로 전환 할 수 있음) 비즈니스 앱을 실행하면 홈을 눌러이 두 번째 홈 화면으로 이동합니다.

이 작업을 수행하는 한 가지 방법은 시각적으로 변경되도록 setContentView() 인수를 하나의 홈 화면 활동 및 종류로 변경하는 것이지만 매우 관리하기 어려워집니다. 사용자가 홈 화면 대체 앱으로 내 앱을 지명했기 때문에 기술적으로 하나의 활동 만 홈 화면으로 지정되었지만 사용자가 홈 버튼을 누르면 일부 제어문을 빠져 나갈 수있는 방법이 있는지 궁금합니다. 두 개의 홈 화면 중 하나를 실행 하시겠습니까?

그것은 반드시 간단한 해결책이 될 필요는 없지만, 기본적으로 나는 가능하면 setContentView() 메서드를 재정의 지속적으로 방지하기 위해 노력하고있어.

편집 : 명확하지 않은 경우 HomeScreenPersonalHomeScreenBusiness이 있으며 현재 홈 버튼을 누르면 항상 HomeScreenPersonal이 표시됩니다. 기본적으로 홈 화면이 몇 가지 고수준 부울에 종속되어있는 경우 기본적으로 2 개의 홈 화면을 쉽게 가질 수있는 방법이 있는지 궁금합니다.

+0

하자 사용자가 HomeScreenPersonal, 그것은 항상 그 후 HomeScreenPersonal에 가야 선택 말할? – Parnit

+0

두 가지 별개의 활동으로 앱의 'GridView'가 있습니다. 각각의 하단에는 다른 화면으로 이동하는 버튼이 있습니다. Personal에서 앱을 시작하면 Home을 누르면 내가 다시 Personal에 들어 오게합니다. 비즈니스에서 앱을 시작한 경우 홈을 누르면 비즈니스로 돌아갑니다. 현재 당신이 시작한 것과 상관없이, 내 전체 앱의 "메인 홈"활동이기 때문에 개인용으로 다시 가져옵니다. – mike

+0

나는 onCreate()가 if (personal) intent = Personal 인 다른 홈 액티비티를 만드는 것이 최선의 방법이라고 생각합니다. 다른 비즈니스 – mike

답변

0

내가 원하는 동작을 얻을 수있는 재미 있고 기능적인 방법을 알아 냈어. 기본적으로 하나의 HomeScreen으로 만들 : 그럼

public static boolean personalMain = true; 

private Activity activity = this; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    if (personalMain) { 
     new HomeScreenPersonal(activity); 
    } else { 
     new HomeScreenBusiness(activity); 
    } 
} 

를 대신 그 두 그냥 그 컨스트럭터 setContentView()를 지정 정규 수업 만들기, Activity 개체 수있는의. 여러 개의 홈 화면을 갖는 상당히 깨끗한 방법.

0

당신은 어떤 응용 프로그램 다양한 변수 (http://developer.android.com/reference/android/content/SharedPreferences.html)를 저장하는 SharedPreference를 사용할 수 있습니다. 다음은 SharedPreferences (http://developer.android.com/training/basics/data-storage/shared-preferences.html)를 사용하는 방법에 대한 예입니다. 당신이 (즉, 화면 변경) 사용자 더 많은 옵션을 부여하려면

, 당신은이 가이드 http://developer.android.com/guide/topics/ui/settings.html 권장으로 설정 작업을 만들 수 있습니다.

+0

= 의도 이것은 내가, 높은 수준의 논리 값을 만들 수있는 몇 가지 방법이있다 찾고, 하나 SharedPreferences' 또는 일부 클래스의'static''을 사용하고 무엇을 정말하지 않습니다. 내가 원하는 것은 그 부울을 취하고 어떤 활동이 홈 화면인지를 바꿀 수 있어야한다는 것입니다. 앱을 홈 화면 대체로 설정하면 기본적으로 하나의 활동 만 홈 화면과 연결됩니다. – mike