我正在构建一个Android应用程序,该应用程序在数据库的列表中使用上下文菜单。我把它一切工作正常,移动到建立使用地图的应用程序的一部分,现在(当我已经切换到10级的Android谷歌模拟器)我有两个问题涌现。第一个已经很快修复了,但是我的上下文菜单不再出现。我不知道这是否是与在模拟器的变化,但这里是我的代码:Android上下文菜单不再出现在模拟器中
在的onCreate我们:
super.onCreate(savedInstanceState);
datasource = new DiaryDataSource(this);
datasource.open();
List<DiaryEntry> values = datasource.getAllDiaryEntries();
DiaryScheduleAdapter adapter = new DiaryScheduleAdapter(this,values);
setListAdapter(adapter);
registerForContextMenu(getListView());
在我的类,它扩展ArrayAdapter
然后我们有:
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
DiaryEntry diaryEntry = getItem(position);
View v = convertView;
if (v == null)
{
v = li.inflate(R.layout.diary_schedule, null);
}
**** TextViews etc ****
v.setOnClickListener(new OnItemClickListener(position));
return v;
然后是onCreateContextMenu:
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)
{
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.diary_context_menu, menu);
}
此外,对于正常的按点击清单当然我用这个:
private class OnItemClickListener implements OnClickListener
{
private int mPosition;
OnItemClickListener(int position)
{
mPosition = position;
}
@Override
public void onClick(View v)
{
**** various bits of code to set up intent ****
startActivity(descIntent);
}
}
然后下面的onContextItemSelected方法,但我没有得到那么多。再次强调,我确信我没有对代码做任何修改,但是长时间点击现在什么都不做。有任何想法吗?
感谢
请发表您的onLongClick,getListView等任何代码logcat错误也是如此。 – Sam 2012-04-29 14:41:11
我没有任何onLongClick代码,并没有得到任何错误。我是一个点击监听器 - 'v.setOnClickListener(new OnItemClickListener(position));' - 你也可以直接点击每个列表项目。但是,再次,这个代码足以让它在一个星期前工作......我应该添加一些onLongClick代码吗? – 2012-04-29 14:48:16
不是特别的,我想确保没有冲突的代码,因为你提供的代码看起来很好。你最近是否清理过你的项目?添加'super.onCreateContextMenu(menu,v,menuInfo);'到OnCreateContextMenu帮助? – Sam 2012-04-29 15:02:51