раздувать пункты всплывающего меню программно - PullRequest
0 голосов
/ 03 мая 2011

В моей деятельности есть кнопка, при нажатии которой вызывается следующий метод -

private ArrayList<ListView> myListViewList;
private ArrayList<MyListAdapter> myAdapterList;

public void onPopupButtonClick(View button) {
    Log.v(TAG, "onPopupButtonClick");

    PopupMenu popup = new PopupMenu(this, button);
    Menu menu = popup.getMenu();

    // how do I display the myListViewList as items of in this popup menu
    // i.e how do I inflate myListViewList into menu object?
}

Я знаю, как это сделать программно для действия - создание линейных слоев и списков и, наконец, использование addContentView дляконтекст действия.

Но ему трудно сделать то же самое для сценария всплывающего меню, как описано выше.

1 Ответ

0 голосов
/ 03 мая 2011

Проверьте этот код для всплывающего окна

 LayoutInflater inflater = (LayoutInflater) PopupMain.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 final View layout = inflater.inflate(R.layout.popup,        
 (ViewGroup)findViewById(R.id.popup_menu_root));
 PopupWindow pw = new PopupWindow(layout, 300,100, true);
 pw.dismiss();
 pw.showAtLocation(layout, Gravity.BOTTOM, 0, 10);

А ваш новый макет всплывающего окна должен выглядеть следующим образом:

Popup.xml:

<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/popup_menu_root"
   android:background="#FFFFFF"
   android:orientation="vertical"
   android:layout_width="wrap_content"
   android:layout_height="20dip" >
  <TextView android:id="@+id/popup_menu_button1"
     android:text="Copy"
     android:textColor="#000000"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content" />
 </LinearLayout>

Эта строка определяет высоту и ширину вашего нового вида (всплывающее окно)

  PopupWindow pw = new PopupWindow(layout, 300,100, true);

и pw.showAtLocation(layout, Gravity.BOTTOM, 0, 10);

указывает, где должно отображаться всплывающее окно ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...