利用popupwindow生成带有列表的对话框,并设置对话框列表的点击事件
点击某个View弹出popupwindow列表:
代码:
privateArrayAdapter<String>adapter_huoMing;privatePopupWindowpopupWindow;/***这里是popupwindow,用来显示所有查询出来的信息列表*这里的View是调用的时候传入界面中的一个View,popupwindow则显示在此view的下方*/privatevoidshowPopupWindow(Viewview){//一个自定义的布局,作为显示的内容ViewcontentView=LayoutInflater.from(getApplicationContext()).inflate(R.layout.activity_popuwindow_huoming,null);//设置按钮的点击事件ListViewlv_popup=(ListView)contentView.findViewById(R.id.lv_popup_huoming);//这里R.layout.activity_changnzytd_item为列表中每一项的布局,R.id.tv_changnzytd为显示数据的textview,huoMing为列表数据源adapter_huoMing=newArrayAdapter<String>(getApplicationContext(),R.layout.activity_changnzytd_item,R.id.tv_changnzytd,huoMing);lv_popup.setAdapter(adapter_huoMing);lv_popup.setOnItemClickListener(newOnItemClickListener(){@OverridepublicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,longid){//这里写Item被点击后的事件//Toast.makeText(getApplicationContext(),"1",0).show();if(huoMing.length>0){et_huoming.setText(huoMing[position]);popupWindow.dismiss();}}});popupWindow=newPopupWindow(contentView,LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT,true);popupWindow.setTouchable(true);popupWindow.setTouchInterceptor(newOnTouchListener(){@OverridepublicbooleanonTouch(Viewv,MotionEventevent){Log.i("mengdd","onTouch:");returnfalse;//这里如果返回true的话,touch事件将被拦截//拦截后PopupWindow的onTouchEvent不被调用,这样点击外部区域无法dismiss}});//如果不设置PopupWindow的背景,无论是点击外部区域还是Back键都无法dismiss弹框//我觉得这里是API的一个bugpopupWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.abc_btn_borderless_material));//设置好参数之后再showpopupWindow.showAsDropDown(view);}
activity_popuwindow_huoming://这个是要显示在popupwindow中的布局
<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="wrap_content"android:background="#FFFFFF"android:orientation="vertical"><ListViewandroid:id="@+id/lv_popup_huoming"android:layout_width="fill_parent"android:layout_height="250dp"></ListView></LinearLayout>
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。