簡體   English   中英

如何將選定的列表視圖項設置為contextmenu的標題?

[英]how to set the selected listview item as header for contextmenu?

我發現了幾篇與我發布的內容有關的帖子,但是沒有一篇告訴我如何使用數據庫中填充的少量復雜listview來進行操作。 這就是我填充列表視圖的方式:

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);

到目前為止,代碼可以正常工作,即長按鼠標就可以按預期填充listview了。我正在顯示上下文菜單,例如:

    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設置為上下文菜單的標題,該怎么做? 謝謝你的幫助。

后來自己發現了它:

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]);
        }
      }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM