Android-下拉框,利用AlertDialog来实现

利用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置中。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章