0

먼저 두 부분으로 나눌 수 있습니다. 내 앱에서 탐색 바를 사용하기 시작했으며이 막대를 사용하여보기를 변경하면 문제가 발생합니다. 콘텐츠보기 지우기

This is the first screen of my app

This is what happens when I select the first option out of the navigation bar menu

첫 번째 이미지

내 응용 프로그램의 최대 모든 필드/버튼 난치성있는 시작을 보여줍니다. 두 번째 이미지는 탐색 모음에서 항목을 선택하면 어떻게되는지 보여줍니다. 호출되는 뷰는 "SCAN"이라는 버튼으로 만 구성되지만이 뷰를 이전 뷰와 결합합니다.

여기서 여기서,/동일 MainActivity에서

@Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

}); 

     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
       this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
     drawer.setDrawerListener(toggle); 
     toggle.syncState(); 

     NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
     navigationView.setNavigationItemSelectedListener(this); 
    } 

MainActivity

제 관점에서 해당 코드 탐색 줄 처리하는 코드이다. Nav_Frame은 content_main.xml에 선언 된 FrameLayout입니다.

public boolean onNavigationItemSelected(MenuItem item) 
    { 
     // Handle navigation view item clicks here. 
     int id = item.getItemId(); 
     android.app.FragmentManager FragManager = getFragmentManager(); 
     if (id == R.id.nav_Menu) { 
      FragManager.beginTransaction().replace(R.id.Nav_Frame,new MainScreen()).commit(); 
     } else if (id == R.id.nav_gallery) { 

     } else if (id == R.id.nav_slideshow) { 

     } else if (id == R.id.nav_manage) { 

     } else if (id == R.id.nav_share) { 

     } else if (id == R.id.nav_send) { 

     } 

     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     drawer.closeDrawer(GravityCompat.START); 
     return true; 
    } 

이것은 MainScreen() 클래스는 내 문제는이 클래스에 앉아 생각 탐색 모음

public class MainScreen extends Fragment 
{ 
    View MyView; 
    Button Scan; 
    RelativeLayout RelLay; 
    MainActivity MA= new MainActivity(); 
    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    { 
     RelLay=(RelativeLayout)MA.findViewById(R.id.RelativeLayout); 
     RelLay.removeAllViews(); 
     MyView = inflater.inflate(R.layout.home_screen,container,false); 
     Scan=(Button)MyView.findViewById(R.id.btnScan); 
     return MyView; 
    } 
} 

에 의해 호출된다. 어제 일부 인터넷 검색 후 .removeAllViews() 메서드가 필요한 것 같았다. 그러나 어느 RelativeLayout 명확, MainActivity() 또는 MainScreen()한지 잘 모르겠습니다.

다른 문제는 RelLay 라인이 NullPointerException을 발생시키는 응용 프로그램을 중단한다는 것입니다.

미리 감사드립니다.

답변

0

단지 당신의 조각을 추가 조각 내부에 주요 활동의보기를 제거 할 필요가

+0

흠이 어떻게 이런 짓을 했을까 작동합니까? – Demonic217