gpt4 book ai didi

java - 上下文菜单显示为全黑

转载 作者:行者123 更新时间:2023-12-02 08:29:48 26 4
gpt4 key购买 nike

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

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

<?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>

 

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);
}
}
}

最佳答案

Activity.registerForContextMenu (View)向操作系统注册上下文菜单,以便当按下菜单按钮且给定 View 位于前台时,将回调 onCreateContextMenu。您所做的就是在回调中注册 View ,使其在代码中基本上无法访问,因为 View 必须已经注册才能达到您在此处的注册。应在生命周期启动方法之一(可能是 onResume)中调用 registerForContextMenu。

关于java - 上下文菜单显示为全黑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3722413/

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