2014-02-19 68 views
0

我发现与我发布的内容有关的几个帖子,但没有一个告诉我如何使用从数据库填充的小复杂listview来完成它。这是怎么了填充我的列表视图:如何将选定的listview项目设置为contextmenu的标题?

final ListView lv = (ListView) getView().findViewById(R.id.mylistview); 
    String[] from = { "sender", "subject", "file_name" }; 
    int[] to = { R.id.sender, R.id.subject, R.id.file_name }; 
    ListAdapter adapter = new SimpleAdapter(getActivity(),mylist, 
      R.layout.list_item,from,to); 
    lv.setAdapter(adapter); 
    registerForContextMenu(lv); 

到目前为止的代码工作正常,这是列表视图是越来越填充为目前预计的长点击我显示上下文菜单,如:

public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) 
{ 
     if (v.getId()==R.id.mylistview) 
     { 
     AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo; 
     String[] menuItems = getResources().getStringArray(R.array.menu); 
     for (int i = 0; i<menuItems.length; i++) 
     { 
      menu.add(Menu.NONE, i, i, menuItems[i]); 
     } 
     } 
    } 

现在我想将R.id.sender设置为上下文菜单的标题,该怎么做?谢谢你的帮助。

回答

0

后来发现它自己:

public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) 
{ 
    HashMap<String , String>h=new HashMap<String, String>(); 
     if (v.getId()==R.id.mylistview) 
     { 
     AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo; 

     String[] menuItems = getResources().getStringArray(R.array.menu); 
     h=(HashMap<String, String>) lv.getItemAtPosition(info.position); 
     String s=h.get("sender"); 
       menu.setHeaderTitle(s); 
     for (int i = 0; i<menuItems.length; i++) 
     { 
      menu.add(Menu.NONE, i, i, menuItems[i]); 
     } 
     } 
    } 
相关问题