我有一个简单的布局,文本视图很少。这里我要做的是定义一个名称,并使用contentProvider将其保存到数据库中。然后,从数据库中读取此名称并显示在textView上。
这是我第一次获取保存在数据库中的项目:
Cursor c = getContentResolver().query(TravelersProvider.CONTENT_URI, PROJECTION, null, null, null);
投影是:
String[] PROJECTION = {Travelers._ID, Travelers.NAME};
现在我需要做的是:
这是我将contextMenu注册到TextView的方式:
txtView1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
registerForContextMenu(v);
}
});
然后我创建它:
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
getMenuInflater().inflate(R.menu.context_menu, menu);
}
最后我定义了触摸时要做的事情:
@Override
public boolean onContextItemSelected(MenuItem item) {
//TODO:
}
这是我需要帮助的地方。基本上,我需要做的是:
答案 0 :(得分:1)
在onCreateContextMenu
挂钩中,有一个View
参数。在此参数上调用getId()
以确定哪个TextView调用了上下文菜单。然后,您可以将其存储到要在onContextItemSelected
中使用的类变量中。
private int contextViewId;
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
getMenuInflater().inflate(R.menu.context_menu, menu);
contextViewId = v.getId();
}
@Override
public boolean onContextItemSelected(MenuItem item) {
// use contextViewId
}