当前位置: 首页 > 知识库问答 >
问题:

如何在RelativeLayout上创建长按菜单?

康鹏云
2023-03-14

我在“MainActivity.java”中动态创建了50个相对布局。

public class MainActivity extends AppCompatActivity  {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
     RelativeLayout big=new RelativeLayout(this);
     RelativeLayout mini;
     setContentView(big);
     for(int i=0; i<50; i++)
     {
         //just a sample example. Accept that the code is completely correct.

         mini=new RelativeLayout(this);
         big.addView(mini);
     }
  }
}

现在,我想,当长按每个“mini”时,会出现一个弹出菜单或上下文菜单,其中包含两个选项(1.打开和2.隐藏)。选择一个后,我将执行打开/隐藏操作。

我搜索互联网和发现一些建议,以创建一个*. xml菜单目录和附加到MainActivity.java使用onCreateContextMenu事件。

但是,我不明白这一点。由于我是adnroid新手,请给我完整的代码,以便在长时间按视图时创建上下文菜单,并附上说明(如“将menu\u all.xml添加到菜单目录”、“创建新的。*java文件”等)

N、 B.我想在API 19上构建的应用程序。

提前谢谢。

共有1个答案

松英喆
2023-03-14

您可以使用

registerForContextMenu(mini); 

此函数将视图作为参数,并为您生成上下文菜单。

覆盖活动的onCreateContextMenu func并做任何您想做的事情。

下面是一个示例代码

public class MainActivity extends Activity {  
    ListView listView1;  
    String contacts[]={"Ajay","Sachin","Sumit","Tarun","Yogesh"};  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
        listView1=(ListView)findViewById(R.id.listView1);  
        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,contacts);  
        listView1.setAdapter(adapter);  
        // Register the ListView  for Context menu  
        registerForContextMenu(listView1);  
    }  
    @Override   
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)  
    {  
            super.onCreateContextMenu(menu, v, menuInfo);  
            menu.setHeaderTitle("Select The Action");    
            menu.add(0, v.getId(), 0, "Call");//groupId, itemId, order, title   
            menu.add(0, v.getId(), 0, "SMS");   
    }   
    @Override    
    public boolean onContextItemSelected(MenuItem item){    
            if(item.getTitle()=="Call"){  
                Toast.makeText(getApplicationContext(),"calling code",Toast.LENGTH_LONG).show();  
            }    
            else if(item.getTitle()=="SMS"){  
                Toast.makeText(getApplicationContext(),"sending sms code",Toast.LENGTH_LONG).show();  
            }else{  
               return false;  
            }    
          return true;    
      }    
    }  
 类似资料:
  • 问题内容: 我想禁用长按(触摸并按住)Web应用程序中的图像后出现的上下文菜单。我见过关于如何做到这一点的不同想法,但似乎没有一个对我有用。 有没有办法通过HTML / CSS / Javascript在Android上执行此操作? 问题答案: 这应该适用于1.6或更高版本(如果我没记错的话)。我不认为有1.5或更早版本的解决方法。

  • pre { white-space: pre-wrap; } 菜单按钮(Menu Button)包含一个按钮(button)和一个菜单(menu)组件,当点击或移动鼠标到按钮上,将显示一个对应的菜单。 为了定义一个菜单按钮(Menu Button),您应该定义一个链接按钮(Link Button)和一个菜单(menu),下面是一个实例:     <div>         <a href="#"

  • 问题内容: 我创建了一个框架,然后创建了一个画布。 接下来,我要在画布上添加一个按钮。 但是,当我打包按钮时,我看不到画布! 这是我尝试过的: 问题答案: Tkinter管理器会尝试将父窗口小部件的大小调整为正确的大小,以包含其子窗口小部件,并且默认情况下不会更大。画布就在其中- 但它与按钮的尺寸完全相同,因此是不可见的。 如果要在画布上放置小部件 而不 导致画布动态调整大小,则需要以下功能: 这

  • 问题内容: AFAIK,Python中没有curses菜单扩展,因此您必须推出自己的解决方案。我知道这个补丁http://bugs.python.org/issue1723038,但我不知道它的当前状态是什么。我在http://www.promisc.org/blog/?p=33上找到了一个很好的Python类,用于包装我想要的“ cmenu”,但我对此也有疑问。我想制作一个菜单,用户可以选择一个

  • 如何创建如下所示的菜单: 链接到PSD 我不想用PSD图像。我更喜欢使用像FontAwesome这样的软件包中的图标,并在CSS中生成背景/CSS。 使用PSD生成工具提示图像然后使用它的菜单版本可以在这里找到。

  • 我目前正在为我的游戏在菜单屏幕上编程。我正在尝试创建一个矩形来检查是否触摸了Sprite按钮。我使用Abitrary世界坐标 如果你想在这里看到这两个相关的类,我使用的是一个特殊的正交相机。(不是我的项目) 通过测试,我发现矩形坐标系的原点在中心,宽度和高度设置得很高。在这里,您可以看到我通过单击打印出“矩形”的区域的图片。正常情况下,矩形的原点应该在左下方,对吗?