Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在上下文菜单中创建弹出菜单?_Android_Android Studio_Kotlin - Fatal编程技术网

Android 如何在上下文菜单中创建弹出菜单?

Android 如何在上下文菜单中创建弹出菜单?,android,android-studio,kotlin,Android,Android Studio,Kotlin,我想为上下文菜单创建一个弹出菜单,这样当我长按上下文菜单时,它会显示另一个弹出菜单 这是我为上下文菜单编写的代码 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val button = findViewById<Button>(R.id.btn)

我想为上下文菜单创建一个弹出菜单,这样当我长按上下文菜单时,它会显示另一个弹出菜单

这是我为上下文菜单编写的代码

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    val button = findViewById<Button>(R.id.btn)
    registerForContextMenu(button)
}

override fun onCreateContextMenu(menu: ContextMenu?, v: View?, menuInfo: ContextMenu.ContextMenuInfo?) {
    super.onCreateContextMenu(menu, v, menuInfo)
    menu?.setHeaderTitle("Choose one")
    menu?.add(0, v?.getId()!!, 0, "Upload")
    menu?.add(0, v?.getId()!!, 0, "Search")
    menu?.add(0, v?.getId()!!, 0, "Share")
}

override fun onContextItemSelected(item: MenuItem): Boolean {

    return super.onContextItemSelected(item)
}
override-fun-onCreate(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val按钮=findViewById(R.id.btn)
registerForContextMenu(按钮)
}
在CreateContextMenu(菜单:ContextMenu?、v:View?、menuInfo:ContextMenu.ContextMenuInfo?)上覆盖乐趣{
super.onCreateContextMenu(menu,v,menuInfo)
菜单?.setHeaderTitle(“选择一个”)
菜单?.add(0,v?.getId()!!,0,“上载”)
菜单?.add(0,v?.getId()!!,0,“搜索”)
菜单?.add(0,v?.getId()!!,0,“共享”)
}
覆盖onContextItemSelected(项:MenuItem):布尔值{
返回super.onContextItemSelected(项)
}

您可能希望使用该方法将子菜单对象添加到菜单中。
如果您想更深入地了解菜单创建内容,请参考创建菜单。

在Java中,当我长按按钮时,它显示上下文菜单,然后我选择上下文菜单,它显示弹出菜单

Button button = findViewById(R.id.button);
registerForContextMenu(button);

 @Override
 public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.setHeaderTitle("Context Menu");
        menu.add(0, v.getId(), 0, "Upload");
        menu.add(0, v.getId(), 0, "Search");
        menu.add(0, v.getId(), 0, "Share");
        menu.add(0, v.getId(), 0, "Bookmark");
    }

@Override
public boolean onContextItemSelected(MenuItem item) {
        super.onContextItemSelected(item);
        try {
            showPopup(findViewById(item.getItemId()));
        } catch (Exception e) {
            e.printStackTrace();
        }
        return true;
    }

private void showPopup(View anchorView) {
        PopupMenu popup = new PopupMenu(this, anchorView);
        popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                Toast.makeText(MapsActivity.this, "Selected Item: "
                        + item.getTitle(), Toast.LENGTH_SHORT).show();
                return true;
            }
        });
        popup.inflate(R.menu.menu_example);
        popup.show();
    }