欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

自定義PopupWindow2

系統(tǒng) 1946 0
上一節(jié)的PopupWindow基本能用
更通用一點(diǎn)的看下面,不過一行顯示多少個(gè)小球需要gridView.setNumColumns(8)設(shè)定一下,這里我沒抽成動(dòng)態(tài)的,具體看源碼:
    
package com.dl.view;

import android.content.Context;
import android.graphics.drawable.BitmapDrawable;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.LinearLayout.LayoutParams;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.GridView;
import android.widget.PopupWindow;
import android.widget.TextView;

import com.dl.app.R;

public class NumbersPickerPopupWindow extends PopupWindow{
	private Context context;
	private String[] balls;
	private final String split=" "; 
	private Button btn_ok;
	private String selectedNumbers;
	private String[] selectedNumbersArray;
	private GridViewAdapter adapter;
	/**
	 * 
	 * @param context
	 * @param view
	 * @param title 標(biāo)題
	 * @param balls 生成的小球
	 * @param selectedNumbers 預(yù)選的小球
	 */
	public NumbersPickerPopupWindow(Context context,View view,String title,String[] balls,String selectedNumbers){
		super(view, LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT, true);
		this.context=context;
		this.selectedNumbers=selectedNumbers;
		this.balls=balls;
		selectedNumbersArray=selectedNumbers.trim().split(split);
		this.setBackgroundDrawable(new BitmapDrawable());//必須設(shè)置background才能消失  
		this.setOutsideTouchable(false);
        
      //自定義動(dòng)畫  
      this.setAnimationStyle(R.style.PopupAnimation);
      //使用系統(tǒng)動(dòng)畫  
//      mPopupWindow.setAnimationStyle(android.R.style.Animation_Dialog);  
      this.update();  
      this.setTouchable(true);
      this.setFocusable(false);
      
      GridView gridView=(GridView)view.findViewById(R.id.gridView);
//      gridView.setNumColumns(8);
      adapter=new GridViewAdapter(context);
      
      gridView.setAdapter(adapter);
      
      TextView tv_tips=(TextView)view.findViewById(R.id.tv_tips);
      tv_tips.setText(title);
      
      btn_ok=(Button)view.findViewById(R.id.btn_ok);
      btn_ok.setOnClickListener(new View.OnClickListener() {
			
			public void onClick(View v) {
				// TODO Auto-generated method stub
				
				if(isShowing())
					dismiss();
//				if(onOkClickListener!=null){
//					onOkClickListener.onOkClick(v);
//				}
			}
		});
      
      this.setOnDismissListener(onDismissListener);
      
	}
	
	private OnDismissListener onDismissListener=new OnDismissListener(){

		public void onDismiss() {
			// TODO Auto-generated method stub
			if(onOkClickListener!=null){
				onOkClickListener.onOkClick(btn_ok);
			}
		}
		
	};
	
	public void setSelectedNumbers(String selectedNumbers){
		this.selectedNumbers=selectedNumbers;
		selectedNumbersArray=selectedNumbers.trim().split(split);
		adapter.notifyDataSetChanged();
		
	}
	
	class GridViewAdapter extends BaseAdapter{

		private Context context;
    	public GridViewAdapter(Context context){
    		this.context=context;
    	}
    	
		public int getCount() {
			// TODO Auto-generated method stub
			return balls.length;
		}

		public Object getItem(int position) {
			// TODO Auto-generated method stub
			return balls[position];
		}

		public long getItemId(int position) {
			// TODO Auto-generated method stub
			return position;
		}

		public View getView(int position, View convertView, ViewGroup parent) {
			// TODO Auto-generated method stub
			if(convertView==null){
				convertView=LayoutInflater.from(context).inflate(R.layout.simple_grid_item_1_red, null);
			}
			CheckBox checkBox = (CheckBox)convertView.findViewById(R.id.checkBox);//
			checkBox.setText(balls[position]);
			if(selectedNumbersArray!=null&&selectedNumbersArray.length>0){
				for(int i=0;i<selectedNumbersArray.length;i++){
					if(selectedNumbersArray[i].equals(balls[position])){
						checkBox.setChecked(true);
					}
				}
			}
			
			checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
				
				public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
					// TODO Auto-generated method stub
					if(onItemCheckedListener!=null){
						onItemCheckedListener.onItemCheckedChanged(buttonView,isChecked);
					}
				}
			});
			return convertView;
		}
		
	}
	//接口
	private OnItemCheckedListener onItemCheckedListener;
	public void setOnItemCheckedListener(OnItemCheckedListener onItemCheckedListener) {
		this.onItemCheckedListener = onItemCheckedListener;
	}

	public interface OnItemCheckedListener{
		public void onItemCheckedChanged(CompoundButton buttonView, boolean isChecked);
	}
	
	private OnOkClickListener onOkClickListener;
	public void setOnOkClickListener(OnOkClickListener onOkClickListener) {
		this.onOkClickListener = onOkClickListener;
	}

	public interface OnOkClickListener{
		public void onOkClick(View v);
	}
	
}

  

用法:
    
LayoutInflater mLayoutInflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);  
    	View view = mLayoutInflater.inflate(R.layout.popwindow2, null);  

tips="至少選擇1個(gè)數(shù)字";
			balls=new String[]{"1","2","3","4","5","6","7","8","9","10",
					"11","12","13","14","15","16","17","18","19","20",
					"21","22","23","24","25","26"
			};
selectedNumbers="4 7 24";//空格隔開!
picker=new NumbersPickerPopupWindow(context,view,tips,balls,selectedNumbers);
		picker.setOnItemCheckedListener(onItemCheckedListener);
		picker.setOnOkClickListener(onOkClickListener);
		if(!picker.isShowing()){
			picker.showAtLocation(views[index], Gravity.BOTTOM, 0, 0);
		}

  


自定義PopupWindow2

自定義PopupWindow2


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦?。?!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 在线观看高清免费 | 国产精品19禁在线观看2021 | 青草综合| 国产h视频在线观看高清 | 久久精品网 | 日韩欧美亚洲 | 欧美第一色 | 韩国资源视频一区二区三区 | 午夜精品久久久久久久90蜜桃 | 一级国产黄色片 | 欧美精品无需播放器在线观看 | 亚洲综合图片色婷婷另类小说 | 日韩一区在线视频 | 久久网在线| 超碰在线观看97 | 日本高清色本在线www | 欧美vide | 奇米线在人线免费视频 | 精品国产青草久久久久福利 | 91成人 | 国产精品国产三级国产aⅴ中文 | 91高清在线成人免费观看 | 欧美日韩一区二区三区视频播 | 亚洲天堂网在线观看 | 国产综合一区二区 | 色屁屁www免费看视频影院 | 五月天黄色网址 | 一区二区日韩精品 | 免费一级做a爰片性色毛片 狠狠色欧美亚洲狠狠色www | 很黄很粗很湿很刺激的视频 | 东京不太热在线新视频 | 乱淫毛片 | 黄色影视大全 | 男女又黄又刺激B片免费网站 | 一区二区精品 | 97色伦色在线综合视频 | 成人毛片视频免费看 | 国产高清久久久 | 毛片a区| 性爱视频在线免费 | 91极品在线 |