我想弄一个下拉列表,我想做一个下拉菜单显示在控件下方,并且和控件同宽。并且点击下拉菜单上的每行文字分别连接到不同的activity内。
 不知哪位大哥大姐能帮帮我,有源代码最好。

解决方案 »

  1.   

    Spinner.setOnItemClickListener
    然后监听到点击就处理Activity.startActivity(Intent intent);
    不知道这样能不能满足楼主要求
      

  2.   

    可以使用PopupWindow+ListView实现、部分代码、
    package com.mas;import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import android.app.Activity;
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.ViewGroup.LayoutParams;
    import android.widget.AdapterView;
    import android.widget.EditText;
    import android.widget.ImageButton;
    import android.widget.ListView;
    import android.widget.PopupWindow;
    import android.widget.SimpleAdapter;
    import android.widget.AdapterView.OnItemClickListener;import com.mas.R;public class popupTest extends Activity {

    ImageButton btnPopupWindow;  
    public PopupWindow pop;
    ListView listView,listView1;
    LayoutInflater inflater;
    SimpleAdapter adapter;
    EditText et;
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);     
            et = (EditText)findViewById(R.id.et);
            btnPopupWindow = (ImageButton)findViewById(R.id.imgbutton1);
            btnPopupWindow.setOnClickListener(new ClickEvent());  
        }
        //统一处理按键事件      
     public class ClickEvent implements OnClickListener{   
            @Override  
            public void onClick(View v){   
                // TODO Auto-generated method stub   
               doSth(v);
            }   
            public void doSth(View v){
              if(v==btnPopupWindow)   
                 {  
                  LayoutInflater inflater = (LayoutInflater)      
                 popupTest.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                  listView = (ListView) inflater.inflate(R.layout.listview, null);
                  if(pop == null){
                  adapter = new SimpleAdapter(popupTest.this, getData(), R.layout.item,  
                  new String[]{"img","info"}, new int[]{R.id.img,R.id.info});
                  listView.setFocusable(true);
                  listView.setItemsCanFocus(true);          
                  listView.setAdapter(adapter);
                  listView.setOnItemClickListener(new OnItemClickListener(){
      @Override
      public void onItemClick(AdapterView<?> arg0, View arg1,
      int arg2, long arg3) {
      // TODO Auto-generated method stub
      if(arg2==0){
      Intent mIntent = new Intent();
      mIntent.setClass(popupTest.this, tt.class);
      startActivity(mIntent);
      }
      else if(arg2==1)
      {
      finish();
      }
              pop.dismiss();
              pop = null;
      }
                  });
                  pop = new PopupWindow(listView,150,LayoutParams.WRAP_CONTENT);
                  pop.setBackgroundDrawable(getResources().getDrawable(R.layout.rounded_corners_pop));
                  pop.setTouchable(true);
                  pop.setFocusable(true);
                  pop.showAsDropDown(btnPopupWindow,1,15);     
                  }else{
                  pop.dismiss();
                  pop = null;
                  } 
                 }
            }
           public List<Map<String, Object>> getData() {  
             List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();  
             Map<String, Object> map = new HashMap<String, Object>(); 
             map.put("img", R.drawable.header);
             map.put("info", "切换用户");                 
             list.add(map);  
             map = new HashMap<String, Object>();  
             map.put("img", R.drawable.delete);
             map.put("info", "退出程序");                 
             list.add(map);  
             return list;     
            }  
        }
    }
      

  3.   

    使用Spinner貌似不能达到下拉框在空间下方的效果!这里你可以使用listView,显示下拉框中的内容!
      

  4.   

    请问二楼的楼主,xml该怎么写啊