0
所以,我堆積了一個問題,使用一個可下拉選擇項目列表的簡單按鈕。我找到了答案,但沒有找到答案,所以我用我自己的方法解決了問題。如何從按鈕創建一個下拉列表視圖?
是這樣的:
對不起,我不能發表圖片,因爲我沒有足夠的聲譽。
所以下面我們如何能做到這一點,如果我們需要這當然:)
所以,我堆積了一個問題,使用一個可下拉選擇項目列表的簡單按鈕。我找到了答案,但沒有找到答案,所以我用我自己的方法解決了問題。如何從按鈕創建一個下拉列表視圖?
是這樣的:
對不起,我不能發表圖片,因爲我沒有足夠的聲譽。
所以下面我們如何能做到這一點,如果我們需要這當然:)
因此,對於我們的需要,我們需要使用ListPopupWindow。 鏈接到官方描述:
http://developer.android.com/reference/android/widget/ListPopupWindow.html
讓我們在代碼中潛水:
我們有自己的方法:
public void downloadBtnSelected(View anchor) {
final ListPopupWindow lpw = new ListPopupWindow(this);
String[] data = { ".png", ".pdf", ".jpg", ".jpeg" };
PopupAdapter pa = new PopupAdapter(data, this);
lpw.setAdapter(pa);
//setting up an anchor view
lpw.setAnchorView(anchor);
//Setting measure specifications. I'v used this mesure specs to display my
//ListView as wide as my anchor view is
lpw.setHeight(android.widget.LinearLayout.LayoutParams.WRAP_CONTENT);
lpw.setWidth(anchor.getRight() - anchor.getLeft());
// Background is needed. You can use your own drawable or make a 9patch.
// I'v used a custom btn drawable. looks nice.
lpw.setBackgroundDrawable(this.getResources().getDrawable(
android.R.drawable.btn_default));
// Offset between anchor view and popupWindow
lpw.setVerticalOffset(3);
lpw.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
/// Our action.....
lpw.dismiss();
}
});
lpw.show();
}
並與onClickListener的按鈕調用此方法:
Button btn = new Button(this);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
downloadBtnSelected(v);
}
});
我們傳遞View v參數作爲我們的錨點,以便讓我們的PopupWindow知道在哪裏顯示自己。如果下方有足夠的空間,它將顯示在我們的錨點視圖的左下角。如果不是,它會顯示在上面。
你爲什麼不使用微調? – Analizer 2013-04-26 09:40:48
我不知道什麼是一個「簡單」的按鈕,「下拉列表中的項目」可能不是一個微調,真的... – 2013-04-26 09:42:10
簡單的按鈕,下拉列表...驚人的 – Unknown 2013-04-26 09:45:45