1

내 응용 프로그램에 서랍 메뉴가 구현되었습니다. 내 응용 프로그램에서 7 가지 조각이 있습니다. 모든 단편을 보유하는 MainActivity는 서랍 활동입니다. 이 액티비티에서는 onBackPressed() 메소드를 재정의했습니다. 나는 그가 변경 한 데이터를 저장하기를 원하는 부분을 가지고있다. 즉 사용자가 한 조각에서 뭔가를 변경하고 사용자가 단편을 남기면 저장하지 않고 (서랍 메뉴에서 다른 단편을 선택하거나 뒤로 버튼을 눌러) 변경 내용이있는 동일한 단편에서 사용자에게 확인 대화 상자를 표시하려고합니다 만든. 예를 들어 .. 사용자가 여섯 번째 조각에서 일부 변경을 수행하고 다른 조각이나 뒤로 단추를 선택하여 조각을 떠난 경우 여섯 번째 조각 자체에 확인 대화 상자를 표시하려고합니다. 어디에서 그의 입력에 따라 그는 선택된 조각을 움직일 수 있거나 그가 약간의 변경을 한 조각에 머무를 수 있습니다.조각을 바꿀 때 조각 변경 사항을 저장합니다.

다음은 내 DrawerActivity 코드 스냅입니다.

@Override 
public void onBackPressed() { 

    if (drawer.isDrawerOpen(GravityCompat.START)) { 
     drawer.closeDrawer(GravityCompat.START); 
    } else { 
     if (mBackPressed + TIME_INTERVAL > System.currentTimeMillis()) 
     { 
      super.onBackPressed(); 
      AppConstants.SELECTED_NAVIGATION_TAB=0; 
      return; 
     } 
     else { Toast.makeText(getBaseContext(), "Tap back button in order to exit", Toast.LENGTH_SHORT).show(); } 

     mBackPressed = System.currentTimeMillis(); 
    } 

} 


@SuppressWarnings("StatementWithEmptyBody") 
@Override 
public boolean onNavigationItemSelected(MenuItem item) { 
    // Handle navigation view item clicks here. 
    int id = item.getItemId(); 
    Fragment fragment = null; 
    switch (id) { 
     case R.id.nav_home: 
      AppConstants.SELECTED_NAVIGATION_TAB = 0; 
      fragment = new HomeFragment(); 
      title = getResources().getString(R.string.home); 
      break; 
     case R.id.nav_progress: 
      AppConstants.SELECTED_NAVIGATION_TAB = 1; 
      fragment = new ProgressFragment(); 
      title = getResources().getString(R.string.progress); 
      break; 
     case R.id.nav_workouts: 
      AppConstants.SELECTED_NAVIGATION_TAB = 2; 
      /* if (Utilities.getInstance().getPreferences(DrawerActivity.this, AppConstants.PREF_KEY_USER_INFO, 
        AppConstants.PREF_KEY_SUBSCRIPTION_STATUS, "").equals("1")){ 
       fragment = new FragmentPremiumClasses(); 
       title = getResources().getString(R.string.premium); 
      }else {*/ 
       fragment = new WorkoutsFragment(); 
       title = getResources().getString(R.string.workouts); 
      // } 
      break; 
     case R.id.nav_subscription: 
      AppConstants.SELECTED_NAVIGATION_TAB = 3; 
      if (!Utilities.getInstance().getPreferences(DrawerActivity.this, AppConstants.PREF_KEY_USER_INFO, 
        AppConstants.PREF_KEY_SUBSCRIPTION_STATUS, "").equals("1")){ 
       fragment = new SubscriptionFragment(); 
       title = getResources().getString(R.string.subscription); 
      } else { 
       fragment = new SelectSocietyFragment(); 
       title = getResources().getString(R.string.newsubscription); 
      } 

      break; 
     case R.id.nav_aboutUs: 
      AppConstants.SELECTED_NAVIGATION_TAB = 4; 
      fragment = new AboutUsFragment(); 
      title = getResources().getString(R.string.aboutus); 
      break; 
     case R.id.nav_settings: 
      AppConstants.SELECTED_NAVIGATION_TAB = 5; 
      fragment = new SettingsFragment(); 
      title = getResources().getString(R.string.settings); 
      break; 
     case R.id.nav_logout: 

      drawer.closeDrawer(GravityCompat.START); 

      isLogoutClicked = true; 
      SharedPreferences.Editor editor = getSharedPreferences(AppConstants.PREF_KEY_USER_INFO, 
        Context.MODE_PRIVATE).edit(); 
      editor.clear(); 
      editor.commit(); 

      AppConstants.SELECTED_NAVIGATION_TAB = 0; 
      Utilities.getInstance().finishAndStartIntent(DrawerActivity.this, MainActivity.class, 0, 0); 
      break; 
    } 

    if (!isLogoutClicked) { 
     getSupportActionBar().setTitle(title); 
     android.support.v4.app.FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); 
     fragmentTransaction.replace(R.id.frame, fragment); 
     fragmentTransaction.commit(); 
     drawer.closeDrawer(GravityCompat.START); 
    } 
    return true; 
} 

희망 사항이 기능을 어떻게 달성 할 수 있었습니까? 어떤 도움이 많이 주시면 감사하겠습니다 :)

감사합니다 :) onPause() 조각의에서

+0

응용 프로그램이 활성화 될 때까지만 데이터를 저장/표시하려는 경우 전역 클래스를 만들고 거기에 변수 값을 저장할 수 있지만 응용 프로그램이 활성 상태가 아니더라도 저장소에 저장하려면 SharedPreference를 사용하여 데이터 저장/검색 .. – Mohit

+0

나는 webservice를 호출하고 데이터를 저장하려고하는데 문제는 내가 어떻게 할 것인지를 알 수 없다는 것입니다. 만약 조각에 대해 다음과 같은 조각에 대한 표시 theDestroyView() 쓰기 그 다음 조각에 – Newbiee

+0

MainACctivity 클래스 코드를 여기에 게시 –

답변

0

데이터를 저장합니다.

+0

help – Newbiee

+0

응용 프로그램 클래스에서 플래그를 가져옵니다. 사용자가 해당 플래그를 true로 설정하는 것보다 edittext에 무언가를 쓰고 있습니다. 서랍 조각에서 플래그가 true 일 경우 해당 변수를 확인하십시오. –