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的
浙公网安备 33010602011771号