gpt4 book ai didi

java - menuitem.getmenuinfo() 为动态创建的 View 返回 null

转载 作者:行者123 更新时间:2023-11-30 02:52:19 24 4
gpt4 key购买 nike

我有一个带有嵌入式 RelativeLayout 和嵌入式 LinearLayoutScrollView

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"
android:paddingLeft="16dp" android:paddingRight="16dp" android:id="@+id/relativeLayout">

<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_below="@+id/Today"
android:layout_alignParentLeft="true" android:id="@+id/linearLayoutToday"
android:animateLayoutChanges="true">
</LinearLayout>

</RelativeLayout>

</ScrollView>

我想为 CheckBox 对象添加上下文菜单,这些对象是动态添加的,如下所示。

private void addItem() {
CheckBox ch = new CheckBox(this);
ch.setText("Test");
registerForContextMenu(ch);
linearLayoutToday.addView(ch);
}

问题出现在 onContextItemSelected 方法中,因为从 item.getMenuInfo() 返回的值始终为 null。

@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
System.out.println(info.targetView);
return true;
}

有谁知道如何解决这个问题?

最佳答案

造成此问题的原因是要为所有子项添加上下文菜单,您只需向父项添加上下文菜单即可。但是,这仅支持其他 View (例如 ListView),而不支持布局。

关于java - menuitem.getmenuinfo() 为动态创建的 View 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23937578/

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