2017-12-20 5 views
0

활동이 BottomNavigationView이고 탐색 모음의 항목을 클릭 할 때 내용을 표시하는 데 Fragment을 사용합니다. 그 활동에서 아래쪽 탐색 모음 새로 고침 다른 활동의 조각

나는이 내 Fragment1에서

private BottomNavigationView.OnNavigationItemSelectedListener navItemListener 
     = new BottomNavigationView.OnNavigationItemSelectedListener() { 

    @Override 
    public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
     switch (item.getItemId()) { 

      case R.id.item1: 
       getSupportFragmentManager().beginTransaction().replace(R.id.container,new Fragment1()).commit(); 
       return true; 
      case R.id.item2: 
       getSupportFragmentManager().beginTransaction().replace(R.id.container,new Fragment2()).commit(); 
       return true; 
      case R.id.item3: 
       getSupportFragmentManager().beginTransaction().replace(R.id.container,new Fragment3()).commit(); 
       return true; 
     } 
     return false; 
    } 

}; 

, 나는 클릭하면 Dialog (매니페스트에 설정된 테마) 역할을 다른 Activity을 시작할 것이라고 편집 버튼이 있습니다. 그 활동에서 나는 내 item1 조각의 텍스트를 편집하기 위해서만 TextViewButton을 가지고 있습니다.

private class ButtonClicked implements View.OnClickListener { 

    @Override 
    public void onClick(View v) { 
     switch (v.getId()){ 

      case R.id.btnEdit: 

       UpdateText(); 
       getSupportFragmentManager().beginTransaction().detach(new Fragment1()).attach(new Fragment1()).commit(); 
       finish(); 
       break; 
      case R.id.btnCancel: 
       finish(); 
       break; 
     } 
    } 
} 

텍스트 업데이트를하지만, 분리가 작동하지 않는 연결하고 난 여전히 편집보고 내 하단 네비게이션 바에서 다른 항목을 클릭해야 내 편집 작업에서

내가 가진 본문. Button을 클릭하면 Activity이 닫히고 내 Fragment에 내 TextView이 이미 업데이트 된 것을 확인할 수 있도록하려면 어떻게해야합니까?

+0

왜 새로 만든'Fragment'를 분리하는 가능? – kalabalik

답변

1

편집 활동에서 새 프래그먼트를 분리하고 다시 첨부하는 대신 활성 상태로 유지하고 여러 가지 방법으로 통지 할 수 있습니다.

1) startActivityForResult()로 활동 편집을 시작하고 편집 활동이 완료되기 전에 호출자에게 결과를 리턴하도록하십시오. 호출자는 프래그먼트를 캡슐화하는 액티비티이지만 콜백은 프래그먼트 안쪽으로 쉽게 전달 될 수 있습니다.

2) 사용 LocalBroadcastManager은 편집 작업에서 로컬 알림을 보내 그 통지를 수신기로 발신자를 등록

하지만 다른 솔루션이

관련 문제