这是我的登录活动,我有一个按钮进入MainActivity,它已经包含导航抽屉了
public class LoginActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
Button btn = (Button) findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(LoginActivity.this, MainActivity.class);
startActivity(i);
}
});
}
}
这是我的主要活动
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();
if (id == R.id.nav_camera) {
// Handle the camera action
} else if (id == R.id.nav_gallery) {
} else if (id == R.id.nav_slideshow) {
} else if (id == R.id.nav_manage) {
} 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;
}
}
我已经更改了AndroidManifest,使LoginActivity成为默认的开始活动,但当我单击按钮时,它不会进入MainActivity。
这就是错误所在
E/AndroidRuntime:致命异常:主进程:com。重大进展myapplication22,PID:11422 java。lang.RuntimeException:无法启动活动组件信息{com.breakdown.myapplication22/com.breakdown.myapplication22.MainActivity}:java。lang.IllegalStateException:此活动已经有一个由窗口装饰提供的操作栏。不要请求窗口。功能_支持_操作_栏,并在主题中将windowActionBar设置为false以使用工具栏。在Android。应用程序。活动线程。在android上执行LaunchActivity(ActivityThread.java:2416)。应用程序。活动线程。android上的handleLaunchActivity(ActivityThread.java:2476)。应用程序。活动线程-android上的wrap11(ActivityThread.java)。应用程序。android上的ActivityThread$H.handleMessage(ActivityThread.java:1344)。操作系统。汉德勒。android上的dispatchMessage(Handler.java:102)。操作系统。活套。android上的loop(Looper.java:148)。应用程序。活动线程。java上的main(ActivityThread.java:5417)。朗,反思一下。方法在com上调用(本机方法)。Android内部的操作系统。ZygoteInit$MethodandArgscaler。在com上运行(zyteinit.java:726)。Android内部的操作系统。合子体。main(zyteinit.java:616)由以下原因引起:java。lang.IllegalStateException:此活动已经有一个由窗口装饰提供的操作栏。不要请求窗口。功能_支持_操作_栏,并在主题中将windowActionBar设置为false以使用工具栏。在Android。支持v7。应用程序。AppCompatDelegateImplV9。android上的setSupportActionBar(AppCompateDelegateImplv9.java:199)。支持v7。应用程序。应用程序活动。com上的setSupportActionBar(AppCompatActivity.java:133)。重大进展我的申请22。主要活动。android上的onCreate(MainActivity.java:24)。应用程序。活动android上的performCreate(Activity.java:6237)。应用程序。仪器。android上的callActivityOnCreate(Instrumentation.java:1107)。应用程序。活动线程。在android上执行LaunchActivity(ActivityThread.java:2369)。应用程序。活动线程。handleLaunchActivity(ActivityThread.java:2476)
错误消息足够清楚,您的代码在MainActivity.java第24行失败。
setSupportActionBar(toolbar);
因为您的Main活动已经具有默认的ActionBar。要解决这个问题,请转到您的styles.xml,并将您的base Theme从
parent="Theme.AppCompat.Light.DarkActionBar">
到
parent="Theme.AppCompat.Light.NoActionBar">
删除这两行:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
我是android新手。我想实现一个由项目列表组成的导航抽屉,单击它会打开一个新活动。基本上是所有活动的导航抽屉。当我从导航抽屉中选择一个项目时,特定的活动就会打开。导航抽屉代码是通过执行空活动来实现的。我想在所有活动中实现导航抽屉功能,这些活动被视为空活动,这些活动已经有了一些功能,导航抽屉功能也可以工作。请帮帮我。 这是activity_header档案 这是我的主要活动 这是头活动java代
我正在尝试创建一个导航抽屉活动,这样我就可以扩展该活动,并按照这个问题链接中给出的答案在所有活动中使用菜单,但我的测试应用程序总是崩溃,下面是我的代码: BaseActivity.java
我正在试用本教程中给出的导航抽屉(幻灯片菜单)。 上面的链接和我的不同之处在于,我试图调用活动而不是调用片段。当应用程序打开时,我无法看到导航抽屉菜单,我只能看到打开HOME活动的操作栏。 以下是我更改的代码:(是否需要一个片段,或者我可以在导航抽屉的第一个屏幕上使用活动?) 我如何解决这个问题,以便在我的家庭活动中显示导航抽屉? 更新: 我甚至尝试了以下链接中给出的选项: 如何使用导航抽屉调用我
我在Android Studio上使用NavigationDrawerTemplate创建了一个新活动 这是代码为创建的。java类文件 主屏幕。Java语言 创建模板时,侧导航栏图标的所有图标都在。XML格式 一个例子是ic_menu_gallery。创建图库图片图标的xml 但是,当我尝试将其更改为PNG文件时,它会抛出错误 08-17 19:31:33.257 10228-10228/com
问题内容: 有没有一种方法可以只配置一次导航抽屉,并在多个Activites上显示它? 问题答案: 为此,只需创建一个实现抽屉的BaseActivity类,然后让所有其他活动扩展该抽屉即可。
我正在尝试使用Visual Studio2017在Xamarin中创建一个导航抽屉。我在谷歌做了一些研究后创建了导航抽屉。但当我尝试从菜单中打开活动时,导航抽屉消失了。 我想在我的所有活动中都有我的导航抽屉,而不是在所有活动中重复。 链接到我的项目:https://github.com/chindara/XamarinAndroidNavigationDrawer 更新链接:https://git