我用SimpleCursorAdapter创建了listview,每行包含多个视图(4 textview),我想在单击时将上下文菜单添加到textview中。
我已将上下文菜单添加到textview之一,但是在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)
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);
}