欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android彈窗ListPopupWindow的簡單應(yīng)用詳解

 更新時間:2021年11月23日 17:32:08   作者:曲幽  
這篇文章主要為大家詳細介紹了Android彈窗ListPopupWindow的簡單應(yīng)用,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

概述

常用的彈窗有菜單,或者Dialog,但更加人性化和可自定義的還是PopupWindow
如果只是展示列表數(shù)據(jù)或者彈窗列表選擇,直接使用ListPopupWindow即可,不用再單獨去設(shè)置布局。
如果想要更加多樣化的那就自定義一個布局,使用PopupWindow即可,也不復(fù)雜。

用法

自定義ListPopupWindow類

public class ChargeItemSumPop extends ListPopupWindow {

 public ChargeItemSumPop(Context context) {
  super(context);
 }
}

屬性設(shè)置

因為里面已經(jīng)有一個列表控件了,所以,不用再綁定布局

setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
setWidth(600);
setModal(true);
setBackgroundDrawable(new ColorDrawable(0xCC000000));

綁定Adapter

//添加想要展示的數(shù)據(jù)
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
List<Integer> lstYear = new ArrayList<>();
for(int i = 2015; i <= year; i++){
    lstYear.add(i);
}
ArrayAdapter<Integer> adapter = new ArrayAdapter<>(context, android.R.layout.simple_spinner_dropdown_item, lstYear);
setAdapter(adapter);

Activity監(jiān)聽

ChargeDateYearPop pop = new ChargeDateYearPop(this);
pop.setOnItemClickListener((adapterView, view, i, l) -> {
    bindingView.chargeYear.setText(String.valueOf(adapterView.getAdapter().getItem(i)));
    pop.dismiss();
});
pop.setAnchorView(bindingView.chargeYear);
pop.show();

完整彈窗類

與普通的彈窗不一樣的地方在于這里面是一個列表,所以要綁定Adapter進行展示

public class ChargeDateYearPop extends ListPopupWindow {

    public ChargeDateYearPop(Context context) {
        super(context);
        setHeight(800);
        setWidth(200);
        setModal(true);
        setBackgroundDrawable(new ColorDrawable(0xCC000000));
        initView(context);
    }

    private void initView(Context context) {
        Calendar calendar = Calendar.getInstance();
        int year = calendar.get(Calendar.YEAR);
        List<Integer> lstYear = new ArrayList<>();
        for(int i = 2015; i <= year; i++){
            lstYear.add(i);
        }
        Collections.sort(lstYear);
        Collections.reverse(lstYear);
        ArrayAdapter<Integer> adapter = new ArrayAdapter<>(context, android.R.layout.simple_spinner_dropdown_item, lstYear);
        setAdapter(adapter);
    }
}

Activity

private void showChargeDateYear(){
    ChargeDateYearPop pop = new ChargeDateYearPop(this);
    pop.setOnItemClickListener((adapterView, view, i, l) -> {
        bindingView.chargeYear.setText(String.valueOf(adapterView.getAdapter().getItem(i)));
        pop.dismiss();
        //重載數(shù)據(jù)等的操作
        //mPresenter.getCharges(getChargeDate());
    });
    pop.setAnchorView(bindingView.chargeYear);
    pop.show();
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論