日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

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

這里寫圖片描述

PupupWindow的布局文件

為一個ListView 作為pupup的主體內容

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);

// 設置高度為 自適應

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);

設置消失Dismiss的監聽

// popupWindow消失的監聽

mPopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {

@Override

public void onDismiss() {

// 處理你要做的事情

}

});

開啟popupWindow

mRegisterZone.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

//設置在那個控件下面顯示 mPopupWindow

mPopupWindow.showAsDropDown(mRegisterZone);

}

});

為ListView設置適配器

MySpinnerArrayAdapter mySpinnerArrayAdapter = new MySpinnerArrayAdapter();

mRegister_lv_zone.setAdapter(mySpinnerArrayAdapter);

// 設配器

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設置item點擊監聽隱藏popup

mRegister_lv_zone.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override

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

mPopupWindow.dismiss();

}

});

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。