我是Android新手,我一直在尝试添加一个简单的添加按钮,如下所述
list_menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_insert"
android:icon="@android:drawable/ic_menu_add"
android:title="@string/menu_insert"
/>
</menu>
MyActivity.java
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.list_menu, menu);
return true;
}
我在傻瓜系列书中读到ic_menu_add已经存在于资源中,我不需要添加它,但是当我运行此代码时它不会显示。我试图添加一个同名的自定义图标仍然没有按钮。请有人帮帮我。
答案 0 :(得分:11)
如果你使用片段,那么你需要在onCreate()中使用它:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
答案 1 :(得分:9)
我正在处理同样的问题..阅读一些查询和文档..希望这可能会对你有帮助。
这是我的菜单的XML文件..
<item
android:id="@+id/action_send_feedback"
android:orderInCategory="100"
android:showAsAction="always"
android:title="@string/action_send_feedback"/>
<item
android:id="@+id/action_share_app"
android:orderInCategory="100"
android:showAsAction="ifRoom"
android:title="@string/action_share_app"
android:icon="@drawable/ic_action_share" />
<item
android:id="@+id/action_rate_app"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_rate_app"/>
JAVA代码就在这里..
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
对于具有选项按钮(在手机底部)的Android手机,按下按钮时会显示showAsAction =“never”的菜单项..否则它们将在操作栏选项菜单中正常显示。
参考:http://developer.android.com/guide/topics/ui/menus.html#options-menu
答案 2 :(得分:2)
不需要调用super()
方法。请尝试替换onCreateOptionsMenu
:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.list_menu, menu);
return true;
}
答案 3 :(得分:1)
如果您将清单中的TargetSDK设置为5,则会显示图标。
如果您要定位较新的Android SDK(3.0及更高版本),操作栏会接管菜单,默认情况下不会显示图标。
你可以试试这个:
答案 4 :(得分:1)
对我来说,我必须将以下代码添加到活动xml:
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:theme="@style/AppTheme"
app:popupTheme="@style/Theme.AppCompat.Light.DarkActionBar"
app:title="@string/app_name"
app:titleMarginStart="24dp"
app:titleTextColor="@android:color/white" />
然后转到activity.java: onCreate
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
和
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//super.onCreateOptionsMenu(menu);
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
然后片段onCreate:
setHasOptionsMenu(true);
答案 5 :(得分:0)
您是否错过了xml文件中的这些行检查一次
的xmlns:工具= “http://schemas.android.com/tools”
工具:上下文= “MainActivity”
如果您错过了这是导致显示选项菜单的问题
答案 6 :(得分:0)
希望以下代码能为您提供帮助:
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';
@Injectable()
export class GetService {
constructor(private http:Http) { }
GetUsers(){
return this.http.get('http://localhost:8080/checkUsers')
.map(result => result.json());
}
}
请提及DarkActionBar作为您在Android Manifest File中使用的主题。
答案 7 :(得分:0)
我遇到过这个问题。但就我而言,我在Framelayout中添加了工具栏。最重要的是,我添加了一个匹配父级的滚动视图。现在ScrollView采用了点击控件,而不是工具栏。因此,如果您使用的是FrameLayout,您的工具栏会被认为是最顶层的视图。
答案 8 :(得分:0)
添加
app:showAsAction="always"
转到菜单项。
答案 9 :(得分:0)
如果它未显示在您的活动中,请确保在活动的onCreate()中调用setSupportActionBar(R.id.my_toolbar)