2016-06-30 12 views
1

から、私は次のソースコードを持っている:フラグメントマネージャで開いているアクティビティ正しく別のアクティビティ

private void initToolbars() { 
    Toolbar toolbarBottom = (Toolbar) findViewById(R.id.toolbar_bottom); 
    if (toolbarBottom != null) { 
     toolbarBottom.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { 
      @Override 
      public boolean onMenuItemClick(MenuItem item) { 
       switch (item.getItemId()) { 
        case R.id.takePhoto: 
         Intent takePhotoIntent = new Intent(NewDocuActivity.this, TakePhotoActivity.class); 
         startActivity(takePhotoIntent); 
       } 
       return true; 
      } 
     }); 
     // Inflate a menu to be displayed in the toolbar 
     toolbarBottom.inflateMenu(R.menu.newdocu_toolbar); 
    } 
} 

TakePhotoActivityのOnCreateの方法は、このソースコードを持っています

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

    if (null == savedInstanceState) { 
     getFragmentManager().beginTransaction() 
       .replace(R.id.container, Camera2BasicFragment.newInstance()) 
       .commit(); 
    } 
} 

私はアプリを実行する場合エラーが発生しました:

アクティビティを開始できませんでしたComponentInfo {com.example.test/com.example.test.TakePhotoActivity}:java .lang.NullPointerExceptionは:NULLオブジェクト参照

R.id.containerに 'ボイドandroid.view.View.setOnClickListener(android.view.View $ OnClickListener)' 仮想メソッドを呼び出すための試みだけでframeLayoutあります。 TakePhotoActivityをアプリ内でのみ実行すると機能します。

メソッドinitToolBarsからTakePhotoActivityを開く正しい方法は何ですか?

+0

スタックトレース全体を送信します。また、OnClickListenerをどこに割り当てるかを確認します。 –

+0

'setOnClickListener'のどこには表示されません –

+0

私はsetOnClickListenerを持っていませんでした。 TakePhotoActivityの呼び出しは、ツールバーメニューからのみ行われます。 –

答えて

0

Camera2BasicFragment.javaの414行目で(item).setOnClickListener(...)を呼び出していませんか? (item)がnullのように見えます。

+0

はい、私はLine 414でOnClickListenerを呼び出しました。それは私が削除する古いコンポーネントのソースコードの平和でした。私はその行とすべての作品を削除します。ご協力ありがとうございました。 –

関連する問題