日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

android 自定义spnner弹出框,PopupWindow,ListView实现自定义Spinner

發(fā)布時間:2023/12/10 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 自定义spnner弹出框,PopupWindow,ListView实现自定义Spinner 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最終的效果圖,點擊+86彈出popup

這里寫圖片描述

PupupWindow的布局文件

為一個ListView 作為pupup的主體內(nèi)容

android:orientation="vertical"

android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/register_lv_zone"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:divider="#30DDDDDD"

android:dividerHeight="1dp"

android:scrollbars="none"

android:scrollingCache="false"

/>

ListView的item布局文件

作為每一個選項

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="@android:color/white"

android:id="@+id/zone_item_parent"

>

android:id="@+id/spinner_address"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_margin="20dp"

android:textColor="#000"

/>

android:id="@+id/spinner_zone"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentRight="true"

android:layout_margin="20dp"

android:textColor="#000"

/>

初始化Pupup

// PopupWindow 的頁面布局 包含一個listview

View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.item_my_spinner, null);

mRegister_lv_zone = (ListView) view.findViewById(R.id.register_lv_zone);

// 初始化 popupW

mPopupWindow = new PopupWindow(RegisterActivity.this);

// 設(shè)置高度為 自適應(yīng)

mPopupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);

mPopupWindow.setWidth(ScreenUtils.getScreenW(RegisterActivity.this) - UIUtils.getDimen(R.dimen.register_edittext_margin_left) * 2);

// 將view添加到 popup里面

mPopupWindow.setContentView(view);

mPopupWindow.setBackgroundDrawable(new PaintDrawable());

mPopupWindow.setFocusable(true);

設(shè)置消失Dismiss的監(jiān)聽

// popupWindow消失的監(jiān)聽

mPopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {

@Override

public void onDismiss() {

// 處理你要做的事情

}

});

開啟popupWindow

mRegisterZone.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

//設(shè)置在那個控件下面顯示 mPopupWindow

mPopupWindow.showAsDropDown(mRegisterZone);

}

});

為ListView設(shè)置適配器

MySpinnerArrayAdapter mySpinnerArrayAdapter = new MySpinnerArrayAdapter();

mRegister_lv_zone.setAdapter(mySpinnerArrayAdapter);

// 設(shè)配器

class MySpinnerArrayAdapter extends BaseAdapter {

@Override

public int getCount() {

return mSpinnerZone.length;

}

@Override

public Object getItem(int position) {

return mSpinnerZone[position];

}

@Override

public long getItemId(int position) {

return position;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

ViewHolder viewHolder;

if (convertView == null) {

LayoutInflater inflater = LayoutInflater.from(getApplicationContext());

convertView = inflater.inflate(R.layout.item_spinner, parent, false);

viewHolder = new ViewHolder(convertView);

convertView.setTag(viewHolder);

} else {

viewHolder = (ViewHolder) convertView.getTag();

}

viewHolder.mSpinnerAddress.setText(mSpinnerAddress[position]);

viewHolder.mSpinnerZone.setText(mSpinnerZone[position]);

return convertView;

}

class ViewHolder {

TextView mSpinnerAddress;

TextView mSpinnerZone;

private final RelativeLayout mZone_item_parent;

ViewHolder(View view) {

mSpinnerAddress = (TextView) view.findViewById(R.id.spinner_address);

mSpinnerZone = (TextView) view.findViewById(R.id.spinner_zone);

mZone_item_parent = (RelativeLayout) view.findViewById(R.id.zone_item_parent);

}

}

}

可以給ListView設(shè)置item點擊監(jiān)聽隱藏popup

mRegister_lv_zone.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override

public void onItemClick(AdapterView> parent, View view, int position, long id) {

mPopupWindow.dismiss();

}

});

總結(jié)

以上是生活随笔為你收集整理的android 自定义spnner弹出框,PopupWindow,ListView实现自定义Spinner的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。