2017-11-10 1 views
0

이 내 활동 클래스조각 사이를 바꿀 때 이전 조각의 데이터가 사라지고 있습니까?

protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_dashboard); 

      username = getIntent().getStringExtra("username"); 
      password = getIntent().getStringExtra("password"); 

      DashbordFragment f = new DashbordFragment(); 
      Bundle b = new Bundle(); 
      b.putString("username",username); 
      b.putString("password",password); 
      f.setArguments(b); 

단편을 생성하고 이것이

  public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
      int id = item.getItemId(); 
      Fragment fragment=null; 
      if(id == R.id.nav_dashboard){ 
       fragment = new DashbordFragment(); 
      } 
      else if (id == R.id.nav_inbox){ 
       fragment = new InboxFragment(); 
      } 

      if (fragment != null) { 
       android.support.v4.app.FragmentTransaction 
       fragmentTransaction = 
         getSupportFragmentManager().beginTransaction(); 

메뉴 항목을 클릭시 단편

  DashbordFragment fragment = f; 
      android.support.v4.app.FragmentTransaction fragmentTransaction = 
        getSupportFragmentManager().beginTransaction(); 
      fragmentTransaction.replace(R.id.fragment_container, fragment); 
      fragmentTransaction.commit(); 
      } 

변화 f를 단편으로 번들을 사용하여 지나가는 대체 용

   fragmentTransaction.replace(R.id.fragment_container, 
       fragment); 
       fragmentTransaction.commit(); 
      } 
      DrawerLayout drawer = (DrawerLayout) 
      findViewById(R.id.drawer_layout); 
      drawer.closeDrawer(GravityCompat.START); 
      return false; 
     } 
+0

당신이 조각을 대체하고 있기 때문이다

SharedPreferences.Editor editor = getActivity().getSharedPreferences(prefKey, MODE_PRIVATE).edit(); editor.putString("username", "abc"); editor.putString("password", "123"); editor.apply(); 

데이터를 검색하려면 : Shared Preference

데이터를 저장하려면를 모든 조각 트랜잭션이 커밋 될 때 조각의 새 인스턴스가 만들어집니다. – Lucky

+0

어떻게 수정합니까 ?? – Hidayath

+0

onNavigationItemSelected()에서 fragment on container를 추가하고 부모 조각보기에 배경색을 추가하는 것을 잊지 마십시오. 그렇지 않으면보기가 일부 경우 중복됩니다. – Lucky

답변

0

FragmentClass에 saveInstanceState를 추가하거나 무시하려고 시도 했습니까? 이것은 당신이 저장 상태에 의존하고 싶어하고 당신이 당신은 사용자 이름과 암호를 저장하는 응용 프로그램에서 공유 환경 설정을 사용할 수 있습니다 인스턴스 변수

@Override public void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    // Save some state! 
} 
0

를 사용하는 것이 좋습니다 경우에만입니다. 이를 사용하면 원하는 때마다 응용 프로그램 전체에서 저장된 데이터에 액세스 할 수 있습니다.

이 당신에게 동일한에 대한 기본적인 아이디어 줄 것이다 :

SharedPreferences prefs = getActivity().getSharedPreferences(prefKey, 
MODE_PRIVATE); 
if (prefs.contains("username")&&(prefs.contains("password"))){ 
     String userName= prefs.getString("username",null); 
     String usrPassword = prefs.getString("paswword",null); 
     if((userName!=null) && (usrPassword!= null)) { 
      //whatever you need to do with the obtained data 
     } 
    } 
+0

현재 공유되는 환경 설정, hre 사용자 이름 및 비밀번호는 백엔드에서 오는 데이터이며, 일부 데이터를 표시하기 위해 사용자 이름과 비밀번호를 사용했습니다. – Hidayath

+0

조각에서 백엔드 데이터를 가져 오지 않는 이유는 무엇입니까? – AndroidMe

+0

백엔드 BT에서 데이터를 얻고 있습니다 hre 문제가 ... 하나의 조각에있는 데이터가 사라집니다 또는 다른 조각을 바꿀 경우 – Hidayath

관련 문제