2017-03-04 8 views
-1

ナビゲーション・ドロワー・メニューを含むアンドロイド・プロジェクトに乱数の生成を組み込もうとしています。後者については、完全に機能するyoutubeチュートリアル(Android開発チュートリアル#12 - 乱数生成)に従ってきましたが、基本的なアンドロイドスタジオプロジェクトのみでした。 Java初心者であるため、すでにNavigation Drawer Menuのコードが含まれているMainActivity.javaに同じJavaコードを追加しようとすると、私は、数字の生成のためのそれぞれのサンプルコードを挿入する場所(行114〜126のスニペット)は何とか間違っていなければならず、私はファイル内でさまざまなアプローチを試みてきたと仮定します。しかし、私はいつもエラー:到達不能なステートメント(行114)を取得します。事前に任意のヘルプThx!Androidのナビゲーション・ドロワーにアクティビティー・コードを正しく配置する

package... 
 

 
import android.app.FragmentManager; 
 
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; 
 
import android.widget.Button; 
 
import android.widget.TextView; 
 

 

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

 
     FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
 
     fab.setOnClickListener(new View.OnClickListener() { 
 
      @Override 
 
      public void onClick(View view) { 
 
       Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
 
         .setAction("Action", null).show(); 
 
      } 
 
     }); 
 

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

 
    @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 onCreateOptionsMenu(Menu menu) { 
 
     // Inflate the menu; this adds items to the action bar if it is present. 
 
     getMenuInflater().inflate(R.menu.main, menu); 
 
     return true; 
 
    } 
 

 
    @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(); 
 

 
     //noinspection SimplifiableIfStatement 
 
     if (id == R.id.action_settings) { 
 
      return true; 
 
     } 
 

 
     return super.onOptionsItemSelected(item); 
 
    } 
 

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

 
     if (id == R.id.nav_first_layer) { 
 
      fragmentManager.beginTransaction() 
 
        .replace(R.id.content_frame 
 
          , new FirstFragment()) 
 
        .commit(); 
 
     } else if (id == R.id.nav_second_layer) { 
 
      fragmentManager.beginTransaction() 
 
        .replace(R.id.content_frame 
 
          , new SecondFragment()) 
 
        .commit(); 
 
     } else if (id == R.id.nav_third_layer) { 
 
      fragmentManager.beginTransaction() 
 
        .replace(R.id.content_frame 
 
          , new ThirdFragment()) 
 
        .commit(); 
 
     } 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; 
 

 
     final TextView textOne = (TextView) findViewById(R.id.rndsampletext); 
 

 
     Button pushMe = (Button) findViewById(R.id.rndsamplebutton); 
 

 
     final String [] txtOptions = {"One", "Two", "Three"}; 
 

 
     pushMe.setOnClickListener(new View.OnClickListener(){ 
 
      @Override 
 
      public void onClick(View v) { 
 
       int rando = (int) (Math.random() * 3); 
 
       textOne.setText(txtOptions[rando]); 
 
      }; 
 
     }); 
 

 
    } 
 

 

 
}

+0

あなたは[こちら](https://github.com/Zhuinden/simple-stack/blob/master/simple-stack-example-mvp/srcからいくつかのインスピレーションを取ることができるかもしれません/main/java/com/zhuinden/simplestackdemoexamplemvp/application/MainView.java) – EpicPandaForce

答えて

0

あなたは初めにtrueを返しています

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

uは乱数を生成した後、それは次のようになります。

私はuがあなたのonCreate()にコードを追加提案activity

01のメソッド

ように:

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

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
    fab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
        .setAction("Action", null).show(); 
     } 
    }); 

    //move this here 
    final TextView textOne = (TextView) findViewById(R.id.rndsampletext); 

    Button pushMe = (Button) findViewById(R.id.rndsamplebutton); 

    final String [] txtOptions = {"One", "Two", "Three"}; 

    pushMe.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v) { 
      int rando = (int) (Math.random() * 3); 
      textOne.setText(txtOptions[rando]); 
     }; 
    }); 

    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); 
} 
+0

@ trav6 Stack overflowへようこそ。答えが正しいとマークした場合は、Answer..thankx – rafsanahmad007

+0

Thxの横にあるチェックマークをクリックしてくださいあなたの助けには本当に、rafsanahmad007!私はあなたが提案したことをしました(つまり、真の復帰を返します)、そして最初の問題はなくなりました。しかし、エミュレータでアプリを起動すると完全に起動しますが、ドロワーメニューの「最初のレイヤー」をクリックすると、アプリは停止します...問題は何かをまだ知りません。私は114-126行目からコードを削除しようとしましたが、それはすべて魅力的でした。何か案が?代わりにonCreate()にコードを追加して代替案を提案することもできます。どういう意味ですか? – trav6

+0

私はその意味で答えを編集しました...助けてくれることを願っています – rafsanahmad007

関連する問題