我正在Android中创建一个与Cardboard一起使用的应用程序。 目前,我已经实现了一个扩展MainActivity中的Activity的菜单和一个激活Cardboard相机的代码(从CardboardActivity扩展)。我的问题是当菜单选择了启动此代码的选项时。我如何在活动中抛出CardboardActivity?
抱歉我的英文。 :(
这是代码:
package com.example.dbg.CamaraCV;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.NavigationView;
import android.support.v4.app.Fragment;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import com.google.vrtoolkit.cardboard.CardboardActivity;
public class MainActivity extends AppCompatActivity {
private Toolbar appbar;
private DrawerLayout drawerLayout;
private NavigationView navView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(com.example.dbg.CamaraCV.R.layout.activity_main);
appbar = (Toolbar)findViewById(com.example.dbg.CamaraCV.R.id.appbar);
setSupportActionBar(appbar);
getSupportActionBar().setHomeAsUpIndicator(com.example.dbg.CamaraCV.R.drawable.ic_nav_menu);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
drawerLayout = (DrawerLayout)findViewById(com.example.dbg.CamaraCV.R.id.drawer_layout);
/*
//Eventos del Drawer Layout
drawerLayout.setDrawerListener(new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
}
@Override
public void onDrawerOpened(View drawerView) {
}
@Override
public void onDrawerClosed(View drawerView) {
}
@Override
public void onDrawerStateChanged(int newState) {
}
});
*/
navView = (NavigationView)findViewById(com.example.dbg.CamaraCV.R.id.navview);
navView.setNavigationItemSelectedListener(
new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
boolean fragmentTransaction = false;
Fragment fragment = null;
CardboardActivity CardboardActivity =null;
switch (menuItem.getItemId()) {
case com.example.dbg.CamaraCV.R.id.menu_seccion_0:
fragment = new Fragment0();
fragmentTransaction = true;
break;
case com.example.dbg.CamaraCV.R.id.menu_seccion_1:
startActivity(new Intent(MainActivity.this, CamaraCardBoard.class));
break;
case com.example.dbg.CamaraCV.R.id.menu_seccion_2:
fragment = new Fragment2();
fragmentTransaction = true;
break;
case com.example.dbg.CamaraCV.R.id.menu_seccion_3:
fragment = new Fragment3();
fragmentTransaction = true;
break;
}
if(fragmentTransaction) {
getSupportFragmentManager().beginTransaction()
.replace(com.example.dbg.CamaraCV.R.id.content_frame, fragment)
.commit();
menuItem.setChecked(true);
getSupportActionBar().setTitle(menuItem.getTitle());
}
drawerLayout.closeDrawers();
return true;
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(com.example.dbg.CamaraCV.R.menu.menu_navview, 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.
switch(item.getItemId()) {
case android.R.id.home:
drawerLayout.openDrawer(GravityCompat.START);
return true;
}
return super.onOptionsItemSelected(item);
}