最近项目中好多地方用到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的
时间: 2024-12-26 05:28:36