Navigation Drawer Layouts verknüpfen

  • Guten Abend Leute,


    ich habe den Navigation Drawer soweit vom Design fertig und habe ein Layout erstellt und möchte nun das Layout mit dem Punkt im Drawer verbinden.


    In diesem Beispiel:
    Shirtee (siehe Foto)


    Wie verknüpfe ich das Layout nun mit dem Punkt shirtee im Drawer


    aktueller Code


    package electronics.ashbourg.whydesign63amazonshirtee;


    import android.os.Bundle;
    import android.support.design.widget.FloatingActionButton;
    import android.support.design.widget.Snackbar;
    import android.view.View;
    import android.support.design.widget.NavigationView;
    import android.support.v4.view.GravityCompat;
    import android.support.v4.widget.DrawerLayout;
    import android.support.v7.app.ActionBarDrawerToggle;
    import android.support.v7.app.AppCompatActivity;
    import android.support.v7.widget.Toolbar;
    import android.view.Menu;
    import android.view.MenuItem;


    public class MainActivity extends AppCompatActivity
    implements NavigationView.OnNavigationItemSelectedListener {


    @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.addDrawerListener(toggle);
    toggle.syncState();


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


    @Override
    public void onBackPressed() {
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    if (drawer.isDrawerOpen(GravityCompat.START)) {
    drawer.closeDrawer(GravityCompat.START);
    } else {
    super.onBackPressed();
    }
    }


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();


    return super.onOptionsItemSelected(item);
    }


    @SuppressWarnings("StatementWithEmptyBody")
    @Override
    public boolean onNavigationItemSelected(MenuItem item) {
    // Handle navigation view item clicks here.
    int id = item.getItemId();


    if (id == R.id.nav_amazon) {
    // Handle the camera action
    } else if (id == R.id.nav_shirtee) {


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


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


    }


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

  • glaube ich verstehe jetzt was du meinst


    es soll die Shirtee.java geöffnet werden
    Diese beinhaltet ein WebView zu einem Online Shop.


    Folgendes habe ich nun gemacht


    @SuppressWarnings("StatementWithEmptyBody")
    @Override
    public boolean onNavigationItemSelected(MenuItem item) {
    // Handle navigation view item clicks here.
    int id = item.getItemId();


    if (id == R.id.nav_amazon) {
    // Handle the camera action
    } else if (id == R.id.nav_shirtee) {
    Intent i = new Intent(MainActivity.this, Shirtee.class);
    startActivity(i);
    } else if (id == R.id.nav_teilen) {


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


    }


    ich habe ein Intent erzeugt.
    Nun geht die App auf aber sobald ich auf shirtee drücke, stürzt die app ab.
    Das WebView funktioniert als eine eigene App aber sobald ich versuche den Code zu integrieren, geht nichts mehr.


    package electronics.ashbourg.whydesign63amazonshirtee;


    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.webkit.WebSettings;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;



    public class Shirtee extends AppCompatActivity {


    private WebView webView;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    //Bereich aus der _main auslesen
    webView = (WebView) findViewById(R.id.webViewShirtee);


    WebSettings webSettings = webView.getSettings();


    //JavaScript Erlauben, damit z.b Youtube möglich ist
    webSettings.setJavaScriptEnabled(true);


    //URL einfügen
    webView.loadUrl("https://www.auto-gadgets24.de/");


    //wenn z.b auf einen Button klickst, ist dies normalerweise mit einer URL hinterlegt und würde deshalb den Browser öffnen, dass wird damit verhindert.
    webView.setWebViewClient(new WebViewClient());


    }


    public void onBackPressed() {
    if (webView.canGoBack()){
    webView.goBack();
    } else {
    super.onBackPressed();
    }




    }




    }

  • Hallo und Sory habe mich wohl am Handy vertippt es solte Klasse heißen.
    Wenn Shirtee ei e eigene App ist, mit allen was zu einer App dazugehört. Kannst du nicht einfach die Activity Klasse in deinen Code kopieren und denken das das geht. Erstelle daraus eine eigene apk. Die muss dann auf dem Handy der user natürlich auch haben. Nun kannst du einen impliziten intent oder auch einen Intent mit Rückgabe Wert machen und somit die eigenständige app starten.


    Du benutz zb da du einfach die Klasse aus einer anderen App in deine kopiert hast das gleiche Layout. Kann schon mal nicht sein. Dann wirst dei neue activity nicht im Manifest eingetragen haben..... Da ist im allgemeinen etwas mehr zu tun als nur kopieren.

  • Ah ok.
    Anfangs war es eine vollständige eigenständige App. Sie war lediglich ein webview einer Seite.


    Nun habe ich mir gedacht, dass ich den webview einfach integrieren kann, als eine eigene Java Datei und diesen webview dann durch das auswählen im drawe auf Punkt Shirtee in der App starte.


    Ich würde dir das gerne mal zeigen, weil ich glaube, dass ich irgendwo ein Logik Fehler habe.
    Können wir mal skypen oder kann ich dir das Projekt mal zusenden?

  • Was mir schon auffällt ist das beide activitys wahrscheinlich das gleiche Layout benutzen das musst du auf jeden Fall ändern auch muss die Activity im Manifest eingetragen werden.
    Bennene die layout Datei von der original webview App erstmal um. Unter Layout in deinem Projekt Speichen und nun auch in der activity ändern.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!