2012-06-26 47 views
0

我试图将自定义标头应用于ListViewContextMenu。这是代码。为ContextMenu应用自定义标头

@Override 
public void onCreateContextMenu(ContextMenu menu, View v, 
     ContextMenu.ContextMenuInfo menuInfo) { 
    super.onCreateContextMenu(menu, v, menuInfo); 

    View header = View.inflate(getSherlockActivity(), 
      R.id.context_menu_header, (ViewGroup) v); 
    TextView title = (TextView) header 
      .findViewById(R.id.context_menu_title); 
    title.setText(cursor.getString(1)); 
    menu.setHeaderView(header); 

    android.view.MenuInflater inflater = getActivity().getMenuInflater(); 
    inflater.inflate(R.menu.context_menu, menu); 
} 

该代码失败,出现Resources$NotFoundException: Resource ID #0x7f050038 type #0x12 is not valid。在行View header = View.inflate(getSherlockActivity(), R.id.context_menu_header, (ViewGroup) v);。我猜可能是因为参数(ViewGroup) v。我怎样才能解决这个错误?

回答

1

我使用R.id.context_menu_header而不是R.layout.layout_file,我不得不传递null为View.inflate方法的最后一个参数。

+0

你的代码中真正的问题是你使用'R.id.context_menu_header'而不是'R.layout.layout_file',并且你应该为'View.inflate'方法的最后一个参数传递'null'。 – Luksprog

+0

我认为你是对的 –

0

我的第一个虽然是你的一个XML文件的错误。某些未正确定义的ID或其他内容。这将是有益的,如果你会张贴更多的代码,包括XML文件:)

+0

解决了它。 :)看到我的答案。 –