利用Spinner可以实现下拉框,效果如下
其实完全可以用AlertDialog来实现。
AlertDialog有一个方法:public AlertDialog.Builder setAdapter (ListAdapter adapter, DialogInterface.OnClickListener listener)
可以很自然的联想到,左边是对应的list数据adapter,右边就是对应的点击事件。于是乎,用AlertDialog就能很容易的实现下拉框咯!而且用Adapter可以很容易的自定义下拉框的样式等等!
1、自定义下拉框每个item的listAdapter
Adapter --(继承)--> ListAdapter
|--BaseAdapter--> ArrayAdapter
|--BaseAdapter--> SimpleAdapter
定义一个继承自BaseAdapter的类MyDialogListAdapter ;
public class MyDialogListAdapter extends BaseAdapter {
}
2、将对应的数据list填入到这个adapter中
heightListAdapter = new MyDialogListAdapter(this, heightDataList);
3、设置按钮的点击事件,点击后显示出下拉框形式的dialog
heightView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
TextView titleView = (TextView) LayoutInflater.from(GradeImageActivity.this).inflate(R.layout.dialog_title_view, null);
titleView.setText("选择身高");
new AlertDialog.Builder(GradeImageActivity.this)
.setCustomTitle(titleView)
.setAdapter(heightListAdapter,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,int which) {
heightTextView.setText(heightDataList.get(which));
}
}).show();
}
});
又自定了title的view,简单的将title置中。