繁体   English   中英

菜单操作项的 setVisibility

[英]setVisibility for menu action item

你能帮助我吗? 我正在尝试创建一个菜单,只需按一下按钮即可在其中显示项目。 我想我应该让菜单项visible:false ,然后在MainActivity中切换这个属性。 但我不能正确地做到这一点。 我需要 3 个新菜单项。

public class MainActivity extends AppCompatActivity implements OnClickListener {

    private static final String TAG = "myLogs";
    Button button;
    TextView textView4;
    EditText editText;
    private Object Menu;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = (Button) findViewById(R.id.button);
        button.setOnClickListener(this);
        Button button2 = (Button) findViewById(R.id.button2);
        editText = (EditText) findViewById(R.id.editText);
        textView4 = (TextView) findViewById(R.id.textView4);
        final Menu action_item4 = (Menu) findViewById(R.id.action_item4);


        button2.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {

                Menu action_item4 = (Menu) findViewById(R.id.action_item4);
                 action_item4.setVisibility(View.VISIBLE);
                          }
        });
    }

我看到一个错误:无法解析方法setVisibility(int)

这不是创建自定义菜单的正确方法。 如果您想在单击按钮时显示自定义菜单,

创建文件 poupup_menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" >  

    <item  
        android:id="@+id/one"  
        android:title="One"/>  

    <item  
        android:id="@+id/two"  
        android:title="Two"/>  

    <item  
        android:id="@+id/three"  
        android:title="Three"/>  

</menu>  

在您的按钮中单击

button2.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {

             //Creating the instance of PopupMenu
        PopupMenu popup = new PopupMenu(MainActivity.this, button1);
        //Inflating the Popup using xml file
        popup.getMenuInflater()
            .inflate(R.menu.popup_menu, popup.getMenu());

        //registering popup with OnMenuItemClickListener
        popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
            public boolean onMenuItemClick(MenuItem item) {
                Toast.makeText(
                    MainActivity.this,
                    "You Clicked : " + item.getTitle(),
                    Toast.LENGTH_SHORT
                ).show();
                return true;
            }
        });

        popup.show(); //showing popup menu
    }
});

您可以向菜单中添加更多项目,如下所示

popup.getMenu().add("title");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM