最近项目中好多地方用到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的

  

05-08 08:29