gpt4 book ai didi

android - 如何在 Android 应用程序中将图标放在 menu_item 上?

转载 作者:行者123 更新时间:2023-11-30 03:29:30 25 4
gpt4 key购买 nike

为什么当我使用下面的 menu.xml 时图标没有出现!!.请帮助我。

     <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<group android:id="@+id/group1">
<item android:id="@+id/item1" android:title="Embelance" android:showAsAction="always|withText"
android:icon="@drawable/ic_launcher" >
<menu>
<item android:id="@+id/E_H1" android:title="To home" android:showAsAction="always|withText"
android:icon="@drawable/ic_launcher"/>
<item android:id="@+id/E_W1" android:title="To work" android:showAsAction="always|withText"
android:icon="@drawable/ic_launcher"/>
<item android:id="@+id/E_O1" android:title="To oppional" android:showAsAction="always|withText"
android:icon="@drawable/ic_launcher"/>
</menu>
</item>
<item android:id="@+id/item2" android:title="Fier" android:showAsAction="always|withText"
android:icon="@drawable/ic_launcher">
<menu>
<item android:id="@+id/F_H1" android:title="To Home" android:showAsAction="always|withText"
android:icon="@drawable/ic_launcher"/>
<item android:id="@+id/F_W1" android:title="To work" android:showAsAction="always|withText"
android:icon="@drawable/ic_launcher"/>
<item android:id="@+id/F_O1" android:title="To Optional" android:showAsAction="always|withText"
android:icon="@drawable/ic_launcher"/>
</menu>
</item>
</group>

当使用下一个属性时,它表明应用程序中存在错误。 : window 说项目包含错误,在运行之前修复它或类似的东西。

android:icon="@android:drawable/ic_launcher"

代码是:

  @Override
public void onCreateContextMenu(ContextMenu menu,View v,ContextMenuInfo menuInfo) {
// Inflate the menu; this adds items to the action bar if it is present.
super.onCreateContextMenu(menu, v, menuInfo);
getMenuInflater().inflate(R.menu.main_context_menu, menu);

}


@Override
public boolean onContextItemSelected(MenuItem item) {


// .......
switch(item.getItemId()){
case R.id.E_H1: // ...........
break;
case...case....case...... // other cases


return super.onContextItemSelected(item);
}

最佳答案

我会尝试回答这个问题,但到目前为止我还不是 100% 清楚这个问题。根据评论,您似乎想知道如何在菜单项中将图标与文本结合起来。

为此,您已在问题中自己提供了答案:第 3 项包含您需要的内容。如果您希望在菜单项 block 中对项目进行分组,那么您可以像以前一样使用组,但特别是对于您的示例,该组毫无意义。像下面这样的东西就足够了(在 Motorola Defy 2.3.6 和 Nexus 4 上运行):

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item
android:id="@+id/context_setting_item1"
android:icon="@drawable/ic_launcher"
android:title="@string/action_settings">
</item>

</menu>

在您的 Activity 中,您将拥有(假设菜单位于 /res/menu/entry.xml 中):

@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.entry, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.context_setting_item1:
Toast.makeText(this, "context_setting_item1 selected", Toast.LENGTH_LONG).show();
return true;
}
return super.onOptionsItemSelected(item);
}

现在,回到菜单项一般性讨论:这些可视组件已被 ActionBar 取代- 在公开内容/应用程序层次结构时更友好、更直接,而且很性感! :)

要深入开发,您可以查看此 Android 开发人员博客,"Goodbye to MenuItem".有关更多开发详细信息,请查看 developer section .从编程的角度来看,这没什么大不了的,因为操作栏组件是使用 xml 中的 menu items 开发的。您只需要提供更多 XML 属性。

例如:只有上面的xml更改为:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item
android:id="@+id/context_setting_item1"
android:icon="@drawable/ic_launcher"
android:showAsAction="always|withText"
android:title="@string/action_settings">
</item>

</menu>

Activity 代码保持原样。

请注意,我只添加了 android:showAsAction="always|withText"

有趣的是,Motorola 2.3.6 没有任何变化(因为 ActionBar 是在 API 级别 11 中添加的),但在 Nexus 上,您会注意到顶部操作栏的图标位于顶部。以前,它有一个 3 点,用户必须点击它们才能查看操作。

如果你希望 api 级别低于 11 的操作栏,我强烈建议使用 Sherlock ActionBar .

关于android - 如何在 Android 应用程序中将图标放在 menu_item 上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17703111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com