package com.material.widget; import android.app.Dialog; import android.content.Context; import android.graphics.Color; import android.view.View; import android.view.ViewGroup; import android.widget.*; import java.util.ArrayList; import java.util.List; /** * Created by IntelliJ IDEA. * User: keith. * Date: 14-10-9. * Time: 16:02. */ public class ActionSheet extends Dialog { private static final String TAG = ActionSheet.class.getSimpleName(); private static final int LIST_STYLE = 1; private static final int GRID_STYLE = 2; private static final int NUMBER_COLUMNS = 3; private CharSequence mTitle; private OnItemClickListener mListener; private List<Item> itemList = new ArrayList<Item>(); private ItemAdapter adapter; private View mBackgroundView; private int mStyle; public ActionSheet(Context context) { super(context, android.R.style.Theme_NoTitleBar); createView(); } private void createView() { FrameLayout container = new FrameLayout(getContext()); FrameLayout.LayoutParams containerParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT); container.setLayoutParams(containerParams); mBackgroundView = new View(getContext()); ViewGroup.LayoutParams backgroundViewParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); mBackgroundView.setBackgroundColor(Color.RED); mBackgroundView.setLayoutParams(backgroundViewParams); container.addView(mBackgroundView); setContentView(container); /* GridView gridView = new GridView(getContext()); adapter = new ItemAdapter(); gridView.setAdapter(adapter); gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { } }); parent.addView(gridView); */ } public void setStyle(int style) { this.mStyle = style; } public void setOnItemClickListener(OnItemClickListener listener) { this.mListener = listener; } @Override public void setTitle(CharSequence title) { this.mTitle = title; } @Override public void setTitle(int titleId) { this.mTitle = getContext().getResources().getString(titleId); } public void showSheet() { if (!isShowing()) { show(); } } public ActionSheet addItems(List<Item> items) { if (items == null || items.size() == 0) { return this; } else { itemList.addAll(items); } return this; } private class ItemAdapter extends BaseAdapter { @Override public int getCount() { return itemList.size(); } @Override public Item getItem(int position) { return itemList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View view, ViewGroup viewGroup) { LinearLayout parent = new LinearLayout(getContext()); TextView textView = new TextView(getContext()); parent.addView(textView); ImageView imageView = new ImageView(getContext()); parent.addView(imageView); return parent; } } public class Item { public int mIcon; public String mText; public Item(int icon, String text) { super(); this.mIcon = icon; this.mText = text; } } public static interface OnItemClickListener { void onItemClick(int position); } }