• Android popupwindow使用心得(一)


    最近项目中好多地方用到popupwindow,感觉这个控件还是非常重要的。所以把使用心得总结下,废话不多说,直接上代码。

    public class MainActivity extends Activity {
    
    	
    	/**
    	 * 选择按钮
    	 */
    	private Button mSelectTypeBtn;
    
    
    	/**
    	 * 显示选择的内容
    	 */
    	private TextView mSelectedType;
    
    	
    	private PopupWindow mPopupWindow;
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
            mSelectTypeBtn = (Button) findViewById(R.id.btn_select_type);
    		mSelectedType = (TextView) findViewById(R.id.tv_type);
    		mSelectTypeBtn.setOnClickListener(new View.OnClickListener() {
    
    			@Override
    			public void onClick(View v) {
    
    				showSelectTypeWindow();
    			}
    		});
    
    	}
    
    	private void showSelectTypeWindow() {
    		LinearLayout contentView = (LinearLayout) getLayoutInflater().inflate(
    				R.layout.hd_type_view, null);
    		ListView lv = (ListView) contentView
    				.findViewById(R.id.hd_type_listview);
    		final String[] types = getResources().getStringArray(
    				R.array.hd_type_array);
    		ArrayAdapter<String> adapter = new ArrayAdapter<String>(
    				MainActivity.this, R.layout.hd_type_view_item, types);
    		lv.setAdapter(adapter);
            lv.setOnTouchListener(new OnTouchListener() {
    			@Override
    			public boolean onTouch(View v, MotionEvent event) {
    				return MotionEvent.ACTION_MOVE == event.getAction() ? true
    						: false;
    			}
    		});
    
    		lv.setOnItemClickListener(new OnItemClickListener() {
    			@Override
    			public void onItemClick(AdapterView<?> parent, View view,
    					int position, long id) {
    
    				mSelectedType.setText(types[position]);
    
    				mPopupWindow.dismiss();
    			}
    		});
    
    		mPopupWindow = new PopupWindow(contentView, LayoutParams.MATCH_PARENT,
    				LayoutParams.MATCH_PARENT, true);
    
    		mPopupWindow.setAnimationStyle(R.style.popwin_anim_style);
    
    		mPopupWindow.setBackgroundDrawable(new ColorDrawable(-00000));
    
    		mPopupWindow.showAtLocation(findViewById(R.id.parent_lay),
    				Gravity.CENTER | Gravity.CENTER, 0, 0);
    	}
    
    }

    这里的 popupwindow里我没有自定义,直接使用Android自带的。下一篇文章里将会写一个自定义的popupwindow的

      

  • 相关阅读:
    mysql 安装及基本点
    logback中的additivity属性
    chrome中,拖动.crx无响应
    Java安装
    mysql多表连接的几种写法
    Ionic -- Refresher & InfiniteScroll 下拉刷新与滚动懒加载
    ng-cli + ionic-cli 常用命令
    Vue笔记(五):Vuex
    JavaScript设计模式(三):发布—订阅模式(观察者模式)
    Windows下解决项目未正确关闭引起的nodejs端口占用
  • 原文地址:https://www.cnblogs.com/tleopard/p/4614867.html
Copyright © 2020-2023  润新知