2017-11-03 21 views
1

こんにちは私はプログラムを作成しており、Androidスタジオから提供されているナビゲーションドローバーアクティビティテンプレートを使用してナビゲーションドロワーを作成しています。私は、アプリケーション内のページを切り替えるためにフラグメントを使用していますが、主なアクティビティは引き出しのオプションの1つになりますが、主なアクティビティに戻す方法を理解できないようです。ここでAndroidナビゲーションドロワーを使用してメインアクティビティに戻る方法

はメインActivity.javaファイル(組織のためにそれを改称)

package com.eliteapp.eliteapp_indev; 

import android.app.FragmentManager; 
import android.os.Bundle; 
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.MenuItem; 

public class your_cmdrs extends AppCompatActivity 
     implements NavigationView.OnNavigationItemSelectedListener { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.your_cmdrs); 
     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(); 
     switch (id){ 


     } 

     if (id == R.id.GalNet) { 
      setTitle("GalNet"); 
      galnet GalNat = new galnet(); 
      android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager(); 
      fragmentManager.beginTransaction(). replace(R.id.Your_CMDRS, GalNat).commit(); 
     } else if (id == R.id.Market) { 
      setTitle("Market"); 
      market Market = new market(); 
      android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager(); 
      fragmentManager.beginTransaction(). replace(R.id.Your_CMDRS, Market).commit(); 
     } else if (id == R.id.PowerPlay) { 
      setTitle("PowerPlay"); 
      powrplay PowrPlay = new powrplay(); 
      android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager(); 
      fragmentManager.beginTransaction(). replace(R.id.Your_CMDRS, PowrPlay).commit(); 


     } else if (id == R.id.ship_fitting) { 
      setTitle("Ship Fitting's"); 
      ship_fitting Ship_Fitting = new ship_fitting(); 
      android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager(); 
      fragmentManager.beginTransaction(). replace(R.id.Your_CMDRS, Ship_Fitting).commit(); 
     } else if (id == R.id.About) { 
      setTitle("About"); 
      about About = new about(); 
      android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager(); 
      fragmentManager.beginTransaction(). replace(R.id.Your_CMDRS, About).commit(); 
     } else if (id == R.id.Settings) { 
      setTitle("Settings"); 
      settings Settings = new settings(); 
      android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager(); 
      fragmentManager.beginTransaction(). replace(R.id.Your_CMDRS, Settings).commit(); 
     } else if (id == R.id.Change_Log) { 
      setTitle("Change Log"); 
      change_log Chagne_Log = new change_log(); 
      android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager(); 
      fragmentManager.beginTransaction(). replace(R.id.Your_CMDRS, Chagne_Log).commit(); 
     } 

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

、ここで誰もがされることをこれで私を助けることができればcontent_Main.xmlが

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/Your_CMDRS" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    tools:context="com.eliteapp.eliteapp_indev.your_cmdrs" 
    tools:showIn="@layout/app_bar_your_cmdrs"> 

</android.support.constraint.ConstraintLayout> 

ファイルでありますすばらしいです。

答えて

0

編集:

私はそれが私のmain.javaファイル内のif文にこのコードを追加することによって、仕事を得ることができました。

} else if (id == R.id.Your_CMDRS) { 
      Intent your_cmdrs = new Intent(this, your_cmdrs.class); 
      startActivity(your_cmdrs); 

今では動作しますが、そこに私は戻って活動への切り替えの遅延があると私は主な活動ここ

日午前場合でも、私もそれに切り替えることができ、それのビデオです: https://youtu.be/lQ93OeZDxIY

私はそれが活動であり断片ではないが、私は確信していないということだと思います。

+0

同じアクティビティからアクティビティを呼び出すのはなぜですか? –

+0

Nav DrawerのCMDRの項目を押すと、メインアクティビティ(この場合はYour_CMDRS)に戻ります。 – AJok1776

+0

新しいフラグメントを作成して呼び出すようにしてください –

0

@ AJok1776私は同じ問題に直面しています。

解決策は、あなたのMainActivityと同じ内容(ナビゲーション・ドロワを含まない)を作成することです。デフォルトでMainFragmentページをロードします。

MainActivityコンテンツが唯一のナビゲーション引き出しコードです。

次に、MainFragmentページをリダイレクトするホームをユーザーがクリックしたときに、ドロワにホームボタン(またはその他)を追加します。この説明はあなたを助け

希望:)

関連する問題