gpt4 book ai didi

无法覆盖 SherlockListFragment 的 android onListLongItemClick

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

简短背景:基本上是我小组的第一个 android 应用程序,我们正在为我们大学的高级设计类(class)构建。它本质上是实现数据库时的导航和用户界面实践。讲师计划将来使用该应用程序,因此我们必须使其向后兼容 android 2.3.x

问题:SherlockListFragment 似乎没有实现 onListLongItemClick,它在代码中有自己的想法。它不允许我覆盖它并且它不包含 super 方法。

代码:

public class DBList extends SherlockListFragment implements
TextToSpeech.OnInitListener {

private int selectedItem;

被操作的变量

public void onListItemClick(ListView l, View v, int itemPosition, long id) 
{
selectedItem = (int) id;
speakOut(this.items.get((int)id).getName());
}//END void onListItemClick

基本点击按预期工作,selectedItem 在这里用于代码测试。它的预期用途是仅说出字符串,而不是其他任何内容。

@Override
public void onListLongItemClick(ListView l, View v, int itemPosition, long id)
{
super.onListItemLongClick(l, v, itemPosition, id);
Log.v(LOGTAG, "List Long Selection: launching context menu");

Log.v(LOGTAG, "Long id: " + id);
selectedItem = (int) id;
l.showContextMenu();
}//END void onListLongItemClick

这会引发错误:SherlockListFragment 类型未定义方法 onListLongItemClick

它的预期用途是创建上下文菜单来编辑或删除数据库中的项目。我知道上下文菜单有效,但出于某种原因,本节中的代码均未被阅读。日志标签永远不会回显,即使代码行被删除,上下文菜单也会打开。

回答:

显然我无法考虑使用 getListView()。感谢 rciovati 的回答我想我在启动上下文菜单时感到困惑,无论它是否在代码中。

public void onActivityCreated(Bundle savedState)
{
super.onActivityCreated(savedState);

Log.v(LOGTAG, "Context Menu registartion complete");
registerForContextMenu(getListView());

getListView().setOnItemLongClickListener(new OnItemLongClickListener()
{
public boolean onItemLongClick(AdapterView<?> l, View v, int itemPosition, long id)
{
Log.v(LOGTAG, "List Long Selection: launching context menu");
selectedItem = (int) id;
l.showContextMenu();
return true;
}
});
}

最佳答案

ListFragment类没有那个方法,所以你不能覆盖它是正常的。

无论如何,您都可以按照说明拦截项目长按 here

关于无法覆盖 SherlockListFragment 的 android onListLongItemClick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16153761/

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