正如文档中所建议的,我有ScrollView
一个嵌入的。以下是布局的缩减:LinearLayout
ScrollView
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tab2_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/top"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
</LinearLayout>
</ScrollView>
ListView
我在许多使用 a而不是 a 的活动中使用以下模式ScrollView
,没有问题。所以,这个问题似乎是 ScrollView 独有的。
final ScrollView scrollView = (ScrollView) frame.findViewById(R.id.tab2_view);
final LinearLayout layout = (LinearLayout) frame.findViewById(R.id.top);
//load and sort backing ArrayList
//neither of these calls resolve the issue
registerForContextMenu(scrollView);
//registerForContextMenu(layout);
//load layout with views
这是问题发生的地方。从返回的值item.getMenuInfo()
始终为空。
@Override
public boolean onContextItemSelected(MenuItem item){
boolean result = false;
try
{
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); //why is this null???
switch (item.getItemId()) {
//do stuff
}
}
catch (Exception e) { ExceptionHandler.handleException(LOG_TAG, e); }
return result;
}
有谁知道如何解决这个问题?
我确实找到了一种解决方法来维护状态变量,并检查menuItem
' 标题而不是 null AdapterContextMenuInfo
。但是,我更愿意了解如何AdapterContextMenuInfo
从选定的MenuItem
.
我已经通过了SO帖子。它们似乎都源于复制/粘贴错误,或者没有调用registerForContextMenu
正确的对象。 这是唯一一篇表明除此之外还有其他问题的文章。