[英]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.