首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >上下文菜单显示为完全黑色

问上下文菜单显示为完全黑色
EN

Stack Overflow用户
提问于 2010-09-16 06:44:36
回答 1查看 813关注 0票数 0

我按照Android网站上的说明和示例创建了一个上下文菜单,但我的菜单显示为完全黑色,并且我无法更改其中的任何选项;任何人都有相同的经验,可以帮助我解决这个问题。

这里是我的类.java和菜单.xml文件

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="single">
        <item android:id="@+id/red"
              android:title="@string/red"
              android:checked="true" />
        <item android:id="@+id/blue"
              android:title="@string/blue" />
        <item android:id="@+id/green"
              android:title="@string/green" />
        <item android:id="@+id/yellow"
              android:title="@string/yellow" />
        <item android:id="@+id/black"
              android:title="@string/black" />
        <item android:id="@+id/white"
              android:title="@string/white" />
        <item android:id="@+id/orange"
              android:title="@string/orange" />
    </group>
</menu>
代码语言:javascript
复制
package com.MyProject;

import android.view.MenuInflater;
import android.view.MenuItem;
import android.app.Activity;
import android.view.ContextMenu;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;

public class ColorsActivity extends Activity {

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
          super.onCreateContextMenu(menu, v, menuInfo);
          MenuInflater inflater = getMenuInflater();
          inflater.inflate(R.menu.context_menu, menu);
          registerForContextMenu(v);

    }
    public boolean onContextItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.red:
                if (item.isChecked()) item.setChecked(false);
                else item.setChecked(true);
                return true;
            case R.id.blue:
                if (item.isChecked()) item.setChecked(false);
                else item.setChecked(true);
                return true;
            case R.id.green:
                if (item.isChecked()) item.setChecked(false);
                else item.setChecked(true);
                return true;
            case R.id.yellow:
                if (item.isChecked()) item.setChecked(false);
                else item.setChecked(true);
                return true;
            case R.id.black:
                if (item.isChecked()) item.setChecked(false);
                else item.setChecked(true);
                return true;
            case R.id.white:
                if (item.isChecked()) item.setChecked(false);
                else item.setChecked(true);
                return true;
            case R.id.orange:
                if (item.isChecked()) item.setChecked(false);
                else item.setChecked(true);
                return true;
            default:
                return super.onContextItemSelected(item);
        }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2010-09-16 07:14:54

Activity.registerForContextMenu (View)向OS注册上下文菜单,以便当菜单按钮被按下并且给定的视图处于前台时,对onCreateContextMenu进行回调。您所做的是在回调中注册视图,使其在您的代码中根本无法访问,因为视图必须已经注册才能达到您在这里的注册。应该在生命周期启动方法之一中调用registerForContextMenu,可能是onResume。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3722413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档