您好,登錄后才能下訂單哦!
點擊某個View彈出popupwindow列表:
代碼:
private ArrayAdapter<String> adapter_huoMing; private PopupWindow popupWindow; /** * 這里是popupwindow,用來顯示所有查詢出來的信息列表 * 這里的View是調用的時候傳入界面中的一個View,popupwindow則顯示在此view的下方 */ private void showPopupWindow(View view) { // 一個自定義的布局,作為顯示的內容 View contentView = LayoutInflater.from(getApplicationContext()) .inflate(R.layout.activity_popuwindow_huoming, null); // 設置按鈕的點擊事件 ListView lv_popup = (ListView) contentView .findViewById(R.id.lv_popup_huoming); //這里R.layout.activity_changnzytd_item為列表中每一項的布局,R.id.tv_changnzytd 為顯示數據的textview,huoMing為列表數據源 adapter_huoMing = new ArrayAdapter<String>(getApplicationContext(), R.layout.activity_changnzytd_item, R.id.tv_changnzytd, huoMing); lv_popup.setAdapter(adapter_huoMing); lv_popup.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // 這里寫Item被點擊后的事件 // Toast.makeText(getApplicationContext(), "1", 0).show(); if (huoMing.length > 0) { et_huoming.setText(huoMing[position]); popupWindow.dismiss(); } } }); popupWindow = new PopupWindow(contentView, LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, true); popupWindow.setTouchable(true); popupWindow.setTouchInterceptor(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { Log.i("mengdd", "onTouch : "); return false; // 這里如果返回true的話,touch事件將被攔截 // 攔截后 PopupWindow的onTouchEvent不被調用,這樣點擊外部區域無法dismiss } }); // 如果不設置PopupWindow的背景,無論是點擊外部區域還是Back鍵都無法dismiss彈框 // 我覺得這里是API的一個bug popupWindow.setBackgroundDrawable(getResources().getDrawable( R.drawable.abc_btn_borderless_material)); // 設置好參數之后再show popupWindow.showAsDropDown(view); }
activity_popuwindow_huoming://這個是要顯示在popupwindow中的布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#FFFFFF" android:orientation="vertical" > <ListView android:id="@+id/lv_popup_huoming" android:layout_width="fill_parent" android:layout_height="250dp" > </ListView> </LinearLayout>
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。