控件的点击事件里能跳转
不知道怎么销毁本身
Intent intent1 = new Intent(context, Activity_XXXXX.class);
context.startActivity(intent1);
//销毁本身要如何?

解决方案 »

  1.   


    class MySpinnerDropDownItems extends PopupWindow {class MyListViewOnItemClickedListener implements
    AdapterView.OnItemClickListener { @Override
    public void onItemClick(AdapterView<?> parent, View view,
    int position, long id) { TextView mTextView = (TextView) view
    .findViewById(R.id.spinner_dropdown_item_textview);
    String content = mTextView.getText().toString();
    // MySpinnerButton.this.setText(content);
     MySpinnerDropDownItems.this.dismiss();
    if (content.equals("设置")) {
    Intent intent1 = new Intent(context, Activity_Setting.class);
    context.startActivity(intent1);
    }
    //this.finish();没有finish()方法

    }
      

  2.   


    第二个参数 view中view中得到activityview.getcontext().finish();
      

  3.   

    销毁popupwindow ?
     popupWindow.dismiss();  
      

  4.   

    都不行呀, 我贴整块的代码好了import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;import xmtd.com.house.Activity_Map;
    import xmtd.com.house.Activity_News;
    import xmtd.com.house.Activity_Setting;
    import xmtd.com.house.Global;
    import xmtd.com.house.R;
    import android.content.Context;
    import android.content.Intent;
    import android.graphics.Color;
    import android.util.AttributeSet;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.AdapterView;
    import android.widget.BaseAdapter;
    import android.widget.Button;
    import android.widget.LinearLayout;
    import android.widget.ListView;
    import android.widget.PopupWindow;
    import android.widget.RelativeLayout.LayoutParams;
    import android.widget.TextView;public class MySpinnerButton extends Button { private Context context; public MySpinnerButton(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    this.context = context;
    // 设置监听事件
    setOnClickListener(new MySpinnerButtonOnClickListener());
    } public MySpinnerButton(Context context, AttributeSet attrs) {
    super(context, attrs);
    this.context = context;
    // 设置监听事件
    setOnClickListener(new MySpinnerButtonOnClickListener());
    } public MySpinnerButton(Context context) {
    super(context);
    this.context = context;
    // 设置监听事件
    setOnClickListener(new MySpinnerButtonOnClickListener());
    } /**
     * MySpinnerButton的点击事件
     * 
     * @author haozi
     * 
     */
    class MySpinnerButtonOnClickListener implements View.OnClickListener { @Override
    public void onClick(View v) { final MySpinnerDropDownItems mSpinnerDropDrownItems = new MySpinnerDropDownItems(
    context);
    if (!mSpinnerDropDrownItems.isShowing()) {
    mSpinnerDropDrownItems.showAsDropDown(MySpinnerButton.this);
    }
    }
    } /**
     * MySpinnerButton的下拉列表
     * 
     * @author haozi
     * 
     */
    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);
    // 下拉列表控件
    mListView = new ListView(context);
    mListView.setLayoutParams(new LayoutParams(MySpinnerButton.this
    .getLayoutParams().width + Global.DipToInt(30.0), LayoutParams.WRAP_CONTENT));
    // mListView.setLayoutParams(new
    // LayoutParams(MySpinnerButton.this.getLayoutParams().width,
    // LayoutParams.WRAP_CONTENT));
    mListView.setCacheColorHint(Color.TRANSPARENT);
    mData = new ArrayList<HashMap<String, String>>();
    // for(int i=0; i<50; i++){
    // HashMap<String, String> mHashmap = new HashMap<String, String>();
    // mHashmap.put("spinner_dropdown_item_textview", "textView " + i);
    // mData.add(mHashmap);
    // }
    //
    HashMap<String, String> mHashmap = new HashMap<String, String>();
    mHashmap.put("spinner_dropdown_item_textview", "最新楼盘");
    mData.add(mHashmap); mHashmap = new HashMap<String, String>();
    mHashmap.put("spinner_dropdown_item_textview", "楼市新闻");
    mData.add(mHashmap); mHashmap = new HashMap<String, String>();
    mHashmap.put("spinner_dropdown_item_textview", "周边新盘");
    mData.add(mHashmap); mHashmap = new HashMap<String, String>();
    mHashmap.put("spinner_dropdown_item_textview", "我的关注");
    mData.add(mHashmap); mHashmap = new HashMap<String, String>();
    mHashmap.put("spinner_dropdown_item_textview", "设置");
    mData.add(mHashmap); // 为listView设置适配器
    mListView.setAdapter(new MyAdapter(context, mData,
    R.layout.spinner_dropdown_item,
    new String[] { "spinner_dropdown_item_textview" },
    new int[] { R.id.spinner_dropdown_item_textview }));
    // 设置listView的点击事件
    mListView
    .setOnItemClickListener(new MyListViewOnItemClickedListener());
    // 把下拉列表添加到layout中。
    mLayout.addView(mListView); setWidth(LayoutParams.WRAP_CONTENT);
    setHeight(LayoutParams.WRAP_CONTENT);
    setContentView(mLayout);
    setFocusable(true); mLayout.setFocusableInTouchMode(true);
    } /**
     * 我的适配器
     * 
     * @author haozi
     * 
     */
    public class MyAdapter extends BaseAdapter { private Context context;
    private List<? extends Map<String, ?>> mData;
    private int mResource;
    private String[] mFrom;
    private int[] mTo;
    private LayoutInflater mLayoutInflater; /**
     * 我的适配器的构造方法
     * 
     * @param context
     *            调用方的上下文
     * @param data
     *            数据
     * @param resource
     * @param from
     * @param to
     */
    public MyAdapter(Context context,
    List<? extends Map<String, ?>> data, int resource,
    String[] from, int[] to) { this.context = context;
    this.mData = data;
    this.mResource = resource;
    this.mFrom = from;
    this.mTo = to;
    this.mLayoutInflater = (LayoutInflater) context
    .getSystemService(context.LAYOUT_INFLATER_SERVICE);
    } /**
     * 系统在绘制ListView之前,将会先调用getCount方法来获取Item的个数
     */
    public int getCount() { return this.mData.size();
    } public Object getItem(int position) { return this.mData.get(position);
    } public long getItemId(int position) { return position;
    } /**
     * 每绘制一个 Item就会调用一次getView方法,
     * 在此方法内就可以引用事先定义好的xml来确定显示的效果并返回一个View对象作为一个Item显示出来。 也
     * 正是在这个过程中完成了适配器的主要转换功能,把数据和资源以开发者想要的效果显示出来。
     * 也正是getView的重复调用,使得ListView的使用更 为简单和灵活。
     * 这两个方法是自定ListView显示效果中最为重要的,同时只要重写好了就两个方法,ListView就能完全按开发者的要求显示。 而
     * getItem和getItemId方法将会在调用ListView的响应方法的时候被调用到。
     * 所以要保证ListView的各个方法有效的话,这两个方法也得重写。
     */
    public View getView(int position, View contentView, ViewGroup parent) { contentView = this.mLayoutInflater.inflate(this.mResource,
    parent, false); // 设置contentView的内容和样式,这里重点是设置contentView中文字的大小
    for (int index = 0; index < this.mTo.length; index++) {
    TextView textView = (TextView) contentView
    .findViewById(this.mTo[index]);
    textView.setText(this.mData.get(position)
    .get(this.mFrom[index]).toString());
    } return contentView;
    }
    } /**
     * listView的点击事件
     * 
     * @author haozi
     * 
     */
    class MyListViewOnItemClickedListener implements
    AdapterView.OnItemClickListener { @Override
    public void onItemClick(AdapterView<?> parent, View view,
    int position, long id) { TextView mTextView = (TextView) view
    .findViewById(R.id.spinner_dropdown_item_textview);
    String content = mTextView.getText().toString();
    // MySpinnerButton.this.setText(content);
     MySpinnerDropDownItems.this.dismiss();
    if (content.equals("最新楼盘")) { }
    if (content.equals("楼市新闻")) {
    Intent intent1 = new Intent(context, Activity_News.class);
    context.startActivity(intent1);

    }
    if (content.equals("周边新盘")) {
    Intent intent1 = new Intent(context, Activity_Map.class);
    context.startActivity(intent1);
    }
    if (content.equals("我的关注")) { }
    if (content.equals("设置")) {
    Intent intent1 = new Intent(context, Activity_Setting.class);
    context.startActivity(intent1);
    }
    //this.finish();没有finish()方法
    }
    }
    }
    }