package com.yeetou.xinyongkaguanjia.component; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.yeetou.xinyongkaguanjia.R; import com.yeetou.xinyongkaguanjia.http.service.AutoSyncData; import com.yeetou.xinyongkaguanjia.ui.BEmailActivity; import com.yeetou.xinyongkaguanjia.util.ViewSetUtil; import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.os.Handler; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.PopupWindow; import android.widget.TextView; /** * 我的SpinnerButton * * @author chaisong * */ public class ASpinnerImageButton extends Button { private Context context; public ASpinnerImageButton(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); this.context = context; // 设置监听事件 setOnClickListener(new MySpinnerButtonOnClickListener()); } public ASpinnerImageButton(Context context, AttributeSet attrs) { super(context, attrs); this.context = context; // 设置监听事件 setOnClickListener(new MySpinnerButtonOnClickListener()); } public ASpinnerImageButton(Context context) { super(context); this.context = context; // 设置监听事件 setOnClickListener(new MySpinnerButtonOnClickListener()); } /** * MySpinnerButton的点击事件 * * @author chaisong * */ class MySpinnerButtonOnClickListener implements View.OnClickListener { @Override public void onClick(View v) { final MySpinnerDropDownItems mSpinnerDropDrownItems = new MySpinnerDropDownItems(context); if (!mSpinnerDropDrownItems.isShowing()) { mSpinnerDropDrownItems.showAsDropDown(ASpinnerImageButton.this); } } } /** * MySpinnerButton的下拉列表 * * @author chaisong * */ class MySpinnerDropDownItems extends PopupWindow { private Context context; private LinearLayout mLayout; // 下拉列表的布局 private ListView mListView; // 下拉列表控件 private ArrayList<HashMap<String, String>> mData; public MySpinnerDropDownItems(Context context) { super(context); this.context = context; // 下拉列表的布局 mLayout = new LinearLayout(context); mLayout.setOrientation(LinearLayout.VERTICAL); mLayout.setBackgroundColor(Color.WHITE); // 下拉列表控件 mListView = new ListView(context); mListView.setBackgroundColor(Color.WHITE); mListView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); // mListView.setCacheColorHint(Color.TRANSPARENT); // 为listView设置适配器 mListView.setAdapter(new AToolAdapter(context)); // 把下拉列表添加到layout中。 mLayout.addView(mListView); setWidth(ViewSetUtil.dip2px(context, 140)); setHeight(LayoutParams.WRAP_CONTENT); setContentView(mLayout); setFocusable(true); mLayout.setFocusableInTouchMode(true); } /** * 我的适配器 * * @author chaisong * */ public class AToolAdapter extends BaseAdapter { private Context context; private LayoutInflater mLayoutInflater; private String[] content = { "导入邮件账单", "扫描短信账单" }; public AToolAdapter(Context context) { this.context = context; this.mLayoutInflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE); } public int getCount() { return content.length; } public Object getItem(int position) { return content[position]; } public long getItemId(int position) { return position; } public View getView(int position, View contentView, ViewGroup parent) { contentView = this.mLayoutInflater.inflate(R.layout.a_spinner_dropdown_item, null); TextView a_spinner_item_text = (TextView) contentView.findViewById(R.id.a_spinner_item_text); ImageView a_spinner_item_img = (ImageView) contentView.findViewById(R.id.a_spinner_item_img); a_spinner_item_text.setText(content[position]); if (position == 0) { a_spinner_item_img.setImageResource(R.drawable.scan_email_img); contentView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent toBEmail = new Intent(ASpinnerImageButton.this.context, BEmailActivity.class); ASpinnerImageButton.this.context.startActivity(toBEmail); MySpinnerDropDownItems.this.dismiss(); } }); } else { a_spinner_item_img.setImageResource(R.drawable.scan_sms_img); contentView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { new AutoSyncData(ASpinnerImageButton.this.context, new Handler()); MySpinnerDropDownItems.this.dismiss(); } }); } return contentView; } } } }