gpt4 book ai didi

android - 扩展 LinearLayout View 上的上下文菜单

转载 作者:行者123 更新时间:2023-11-29 22:20:49 25 4
gpt4 key购买 nike

我有一个扩展 LinearLayout 的类( View )。

现在,我正在尝试为 Activity 中该类的每个元素创建一个上下文菜单,但没有办法,它永远不会触发:

 public void onCreate(Bundle savedInstanceState) 
{
super.onCreate(savedInstanceState);
LinearLayout ll = new LinearLayout(this);
MyLinearLayout[] arrayLayout = new MyLinearLayout[num];
for (int i = 0; i < arrayLayout.length; i++)
{
//I ve removed code that fill the array and do some actions


//and then:
ll.addView(arrayLayout[i]);
registerForContextMenu(arrayLayout[i]);
}
setContentView(ll);
}

@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
Log.i(LOGTAG, "context menu");
menu.setHeaderTitle("Context Menu");
menu.add(0, v.getId(), 0, R.string.CTX_EDIT);
menu.add(0, v.getId(), 0, R.string.CTX_ELIM);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
function1(item.getItemId());

return true;
}

public void function1(int id){
Toast.makeText(this, "function 1 called", Toast.LENGTH_SHORT).show();
}

上下文菜单从不显示,我读过很多关于它的问题,我认为这是因为 LinearLayout 扩展类,但我确信有办法做到这一点,或者我遗漏了一些东西.有人可以帮忙吗?谢谢!

最佳答案

您正在创建一个空的 MyLinearLayout 数组:arrayLayout = new MyLinearLayout[num],

然后你试图设置一个上下文菜单:

registerForContextMenu(arrayLayout[i])

因为 arrayLayout[i]null,所以什么都不做。

关于android - 扩展 LinearLayout View 上的上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7262464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com