将上下文菜单添加到SimpleCursorAdapter的子视图(Textview)onClick

问题描述:

我已经创建了与SimpleCursorAdapter的列表视图,每行包含多个视图(4个文本视图),我想添加上下文菜单到一个单击文本视图。将上下文菜单添加到SimpleCursorAdapter的子视图(Textview)onClick

我已经加入上下文菜单TextView的之一,但的onclick的TextView的它总是给最后一行的数据(最后一排的TextView的数据)。

我该如何解决这个问题,非常感谢任何帮助。

下面是我的代码:

在下面的代码我设置的OnClick听者当文本用户点击我注册上下文菜单的TextView。

public View getView(int position, View convertView, ViewGroup parent) { address = (TextView) row.findViewById(R.id.host_address); 
        address = (TextView) row.findViewById(R.id.host_address); 
        address.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) {       
          registerForContextMenu(address); 
          openContextMenu(address); 
          unregisterForContextMenu(address); 
         } 
        }); } 

上下文菜单:

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

     menu.setHeaderTitle(address.getText()); 
     menu.add(0, OPEN_MAP, 0, "Open in maps"); 
     menu.add(0, COPY_ADDRESS, 1, "Copy"); 
    } 

注: - **在上面的代码** address.getText()总是返回最后一行的地址。

+0

请发布与上述功能相关的代码。 –

+0

没有什么可以发生! –

+0

@RameshR添加了代码。 – Joe

Toolbar可以被用作一个或ActionBar作为独立。 独立模式是,您不会将Toolbar设置为您的操作栏,因此您可以将其用作简单视图,将其放置在任何需要控制它的位置。

在独立模式下,您需要用内容/操作手动填充工具栏。例如,如果你想让它显示动作,你需要给它充气菜单

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.blah); 

    Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar); 

    // Set an OnMenuItemClickListener to handle menu item clicks 
    toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener(){ 
     @Override 
     public boolean onMenuItemClick(MenuItem item) { 
      // Handle the menu item 
      return true; 
     } 
    }); 

    // Inflate a menu to be displayed in the toolbar 
    toolbar.inflateMenu(R.menu.your_toolbar_menu); 
} 
+0

这不是我正在寻找的,请检查我的更新。 – Joe