0

Erstens kann dies eine zweiteilige Frage sein. So habe ich angefangen, die Navigationsleiste in meiner App zu verwenden und das Ändern von Ansichten mit dieser Leiste verursacht mein Problem.Löschen einer Inhaltsansicht

This is the first screen of my app

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

Das erste Bild zeigt den Start von meiner app, werden alle Felder/Tasten schwer zu bearbeiten sind. Das zweite Bild zeigt, was passiert, wenn ich einen Gegenstand aus der Navigationsleiste auswähle. Die aufgerufene Ansicht besteht nur aus der Schaltfläche "SCAN", sie fasst diese neue Ansicht jedoch nur mit der vorherigen Ansicht zusammen.

Hier ist der relevante Code aus der ersten Ansicht/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); 
    } 

Im gleichen MainActivity, hier ist der Code, der mit der Navigationsleiste beschäftigt. Der Nav_Frame ist ein FrameLayout, der in der Datei content_main.xml deklariert ist.

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; 
    } 

Dies ist die Mainscreen() -Klasse von der Navigationsleiste

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; 
    } 
} 

Ich glaube, mein Problem in dieser Klasse sitzt aufgerufen wird. Nach einigem googeln gestern schien die .removeAllViews() Methode das zu sein was ich brauchte. Ich bin mir aber nicht sicher, welches RelativeLayout das Clear, MainActivity() oder MainScreen() ist.

Ein anderes Problem ist, dass die RelLay Zeilen, crash die App mir eine NullPointerException.

Vielen Dank im Voraus. einfach fügen Sie einfach Ihr Fragment

Antwort

0

keine Notwendigkeit die Ansicht Ihrer Haupttätigkeit innerhalb des Fragments entfernen wird es funktionieren

+0

Hmm, wie würde ich das tun? – Demonic217

Verwandte Themen