package com.android.calendar.views;
import java.util.List;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Display;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import com.android.calendar.R;
/**
*
* 从下往上弹出的对话框
*
* @author gjl
*
*/
public class PopMenuDialog extends AlertDialog {
private CharSequence mTitle;
private String[] mItems;
private View mContentView;
private ListView mListView;
private DialogInterface.OnClickListener mItemClickListener;
public PopMenuDialog(Context context) {
super(context, R.style.CustomDialog);
}
public PopMenuDialog setMenuTitle(String title) {
mTitle = title;
return this;
}
public PopMenuDialog setMenuTitle(int titleResId) {
try {
mTitle = getContext().getResources().getString(titleResId);
} catch (Exception e) {
mTitle = "";
}
return this;
}
public PopMenuDialog setMenuDatas(String[] items) {
mItems = items;
return this;
}
public PopMenuDialog setMenuDatas(List<String> items) {
if (items != null) {
mItems = new String[items.size()];
for (int i = 0; i < items.size(); i++) {
mItems[i] = items.get(i);
}
}
return this;
}
public PopMenuDialog setMenuSelectListener(
final DialogInterface.OnClickListener onItemSelectListener) {
mItemClickListener = onItemSelectListener;
return this;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
init(getContext());
setContentView(mContentView);
WindowManager windowManager = (WindowManager) getContext()
.getSystemService(Context.WINDOW_SERVICE);
Display display = windowManager.getDefaultDisplay();
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.width = (int) (display.getWidth()); // 设置宽度
getWindow().setAttributes(lp);
}
private void init(Context context) {
if (mItems == null) {
mItems = new String[0];
}
if (mTitle == null) {
mTitle = "";
}
setCancelable(true);
View contentView = LayoutInflater.from(context).inflate(
R.layout.number_pick_view, null);
mContentView = contentView;
TextView title = (TextView) contentView.findViewById(R.id.pick_type);
title.setText(mTitle);
contentView.findViewById(R.id.cancel_btn).setVisibility(View.GONE);
mListView = (ListView) contentView.findViewById(R.id.num_list);
try {
mListView.setDivider(context.getResources().getDrawable(
android.R.drawable.divider_horizontal_bright));
mListView.setSelector(android.R.drawable.list_selector_background);
}catch(Exception e){
}
mListView.setAdapter(new ArrayAdapter<String>(context,
R.layout.simple_number_item, R.id.simple_num, mItems));
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
dismiss();
if (mItemClickListener != null) {
mItemClickListener.onClick(PopMenuDialog.this, arg2);
}
}
});
Window window = getWindow();
window.setGravity(Gravity.BOTTOM);
}
}
AlertDialog与Dialog的区别以及一个奇怪的问题2
最新推荐文章于 2024-04-17 14:58:24 发布