Java 在android中从arraylist将静态菜单变为动态菜单
我有一个popup_menu.xml,它有3个静态项标记,所以这3个项的值显示在弹出菜单中,但我有一个arraylist,它有几个我想在弹出菜单中显示的值 我只想显示markersArray中可用的carnames,而不是popup_menu.xml中可用的静态项值Java 在android中从arraylist将静态菜单变为动态菜单,java,android,android-layout,listview,menuitem,Java,Android,Android Layout,Listview,Menuitem,我有一个popup_menu.xml,它有3个静态项标记,所以这3个项的值显示在弹出菜单中,但我有一个arraylist,它有几个我想在弹出菜单中显示的值 我只想显示markersArray中可用的carnames,而不是popup_menu.xml中可用的静态项值 Array List array for(int i=0; i<markersArray.size(); i++){ String caname = markersArray.get(i).get
Array List array
for(int i=0; i<markersArray.size(); i++){
String caname = markersArray.get(i).getCarname();
}
popup_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<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>
MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Click action
System.out.println("Float Icon Clicked");
//Creating the instance of PopupMenu
PopupMenu popup = new PopupMenu(MainActivity.this, fab);
//Inflating the Popup using xml file
popup.getMenuInflater().inflate(R.menu.poupup_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
}
});
}
在这行代码下
PopupMenu popup = new PopupMenu(MainActivity.this, fab);
只需通过您的ArrayList将其添加到弹出菜单中,如下所示
for (String s : array) {
popup.getMenu().add(s);
}