2013-03-11 12 views

回答

1

我已經achived使用PopUpWindow這種行爲,這裏是我的代碼:

// The method that displays the popup. 
private void showStatusPopup(final Activity context, Point p) { 

    // Inflate the popup_layout.xml 
    LinearLayout viewGroup = (LinearLayout) context.findViewById(R.id.llStatusChangePopup); 
    LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View layout = layoutInflater.inflate(R.layout.status_popup_layout, null); 

    // Creating the PopupWindow 
    changeStatusPopUp = new PopupWindow(context); 
    changeStatusPopUp.setContentView(layout); 
    changeStatusPopUp.setWidth(LinearLayout.LayoutParams.WRAP_CONTENT); 
    changeStatusPopUp.setHeight(LinearLayout.LayoutParams.WRAP_CONTENT); 
    changeStatusPopUp.setFocusable(true); 

    // Some offset to align the popup a bit to the left, and a bit down, relative to button's position. 
    int OFFSET_X = -20; 
    int OFFSET_Y = 50; 

    //Clear the default translucent background 
    changeStatusPopUp.setBackgroundDrawable(new BitmapDrawable()); 

    // Displaying the popup at the specified location, + offsets. 
    changeStatusPopUp.showAtLocation(layout, Gravity.NO_GRAVITY, p.x + OFFSET_X, p.y + OFFSET_Y); 
} 

和這是彈出式佈局:

<?xml version="1.0" encoding="utf-8"?> 

<ImageView 
    android:layout_marginLeft="11dp" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/devider_popup_task_status_change" 
    android:contentDescription="@drawable/devider_popup_task_status_change"/> 

<TextView 
    android:id="@+id/tvInProgress" 
    android:paddingLeft="10dp" 
    android:layout_weight="1.0" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:textColor="@color/my_black" 
    android:gravity="center_vertical" 
    android:clickable="true" 
    android:onClick="popupStatusChangeOnClick" 
    android:layout_marginLeft="11dp" 
    android:layout_marginRight="4dp" 
    android:text="@string/inprogress"/> 

<ImageView 
    android:layout_marginLeft="11dp" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/devider_popup_task_status_change" 
    android:contentDescription="@drawable/devider_popup_task_status_change"/> 

<TextView 
    android:id="@+id/tvOnTheWay" 
    android:paddingLeft="10dp" 
    android:layout_weight="1.0" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:textColor="@color/my_black" 
    android:gravity="center_vertical" 
    android:clickable="true" 
    android:onClick="popupStatusChangeOnClick" 
    android:layout_marginLeft="11dp" 
    android:layout_marginRight="4dp" 
    android:text="@string/ontheway"/> 

<ImageView 
    android:layout_marginLeft="11dp" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/devider_popup_task_status_change" 
    android:contentDescription="@drawable/devider_popup_task_status_change"/> 

<TextView 
    android:id="@+id/tvComplete" 
    android:paddingLeft="10dp" 
    android:layout_weight="1.0" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:textColor="@color/my_black" 
    android:gravity="center_vertical" 
    android:clickable="true" 
    android:onClick="popupStatusChangeOnClick" 
    android:layout_marginLeft="11dp" 
    android:layout_marginRight="4dp" 
    android:text="@string/complete"/> 

<ImageView 
    android:layout_marginLeft="11dp" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/devider_popup_task_status_change" 
    android:contentDescription="@drawable/devider_popup_task_status_change"/> 

<TextView 
    android:id="@+id/tvFailed" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:paddingLeft="10dp" 
    android:layout_weight="1.0" 
    android:gravity="center_vertical" 
    android:clickable="true" 
    android:onClick="popupStatusChangeOnClick" 
    android:layout_marginLeft="11dp" 
    android:layout_marginRight="4dp" 
    android:layout_marginBottom="11dp" 
    android:text="@string/failed" 
    android:textColor="@color/my_black" /> 

當時ImageView的只有1個像素的deviders。

0

你可以使用微調須─

String[] branch={"NEW","prev",...}; 
ArrayAdapter<String> list; 
spinner=(Spinner) findViewById(R.id.spinner); 
    list=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,branch); 
    spinner.setAdapter(list); 
    spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> arg0, View arg1, 
       int arg2, long arg3) { 
         } 
0

什麼你問的是一個Spinner,但你也可以自己製作彈出的列表中,使用「ListPopupWindow

相關問題