[英]Android: Start a new activity from menu item
我正在尝试为我的应用程序打开第二个屏幕。 用户必须单击菜单项,然后必须打开屏幕。 但是,我尝试执行的操作始终只是忽略case语句后的规则。
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.OpenScreen: startActivity(new Intent(this, SecondScreenActivity.class));;
break;
}
return true;
我还将该活动添加到标记内的AndroidManifest.xml中。
任何帮助将不胜感激
我在新类的构造函数中使用了finish()
。
对我来说,您的Java代码是正确的,并且可以为我工作。
但是,当我学习Android时,刚开始进行一项新活动时,我遇到了与您相同的问题,什么也没有发生,没有任何错误,只是无法正常工作。
就我而言,我忘记将活动添加到AndroidManifest.xml文件中。 也许对您来说一样。
您的AndroidManifest文件应包含类似的内容
<activity
android:name=".SecondScreenActivity" >
</activity>
这告诉系统SecondScreenActivity退出。
在http://developer.android.com/guide/topics/manifest/activity-element.html中,他们说:
所有活动必须由清单文件中的元素表示。 任何未声明的文件将不会被系统看到,也永远不会运行。
希望这可以帮助
这样尝试
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.OpenScreen:
startActivity(new Intent(YourClass.this, SecondScreenActivity.class));
break;
}
return true;
不要为onOptionsItemSelected
return true
。
调用这样的超级方法。
return super.onOptionsItemSelected(item);
而不是返回true;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.