Set custom layout in popup window in android

You can use following code. you need to use PopupWindow for this.

PopupWindow mpopup;   

then you need to inflate your view.

    View popUpView = getLayoutInflater().inflate(R.layout.activity_login,
            null); // inflating popup layout
    mpopup = new PopupWindow(popUpView, LayoutParams.FILL_PARENT,
            LayoutParams.WRAP_CONTENT, true); // Creation of popup
    mpopup.setAnimationStyle(android.R.style.Animation_Dialog);
    mpopup.showAtLocation(popUpView, Gravity.CENTER, 0, 0); // Displaying popup  

if your layout have some item then you need bind that item with your view.

    TextView some = (TextView) popUpView.findViewById(R.id.some);       
    Button btnCancel = (Button) popUpView.findViewById(R.id.btnCancel);  

onClickListener of your popup windows item.

    btnCancel.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            mpopup.dismiss();
        }
    });   

You can dismiss your PopupWindow using mpopup.dismiss();


try this code:

private void showSortPopup(final Activity context, Point p) 
{
       // Inflate the popup_layout.xml
       LinearLayout viewGroup = (LinearLayout) context.findViewById(R.id.llSortChangePopup);
       LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
       View layout = layoutInflater.inflate(R.layout.sort_popup_layout, viewGroup);

       // Creating the PopupWindow
       changeSortPopUp = new PopupWindow(context);
       changeSortPopUp.setContentView(layout);
       changeSortPopUp.setWidth(LinearLayout.LayoutParams.WRAP_CONTENT);
       changeSortPopUp.setHeight(LinearLayout.LayoutParams.WRAP_CONTENT);
       changeSortPopUp.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 = 95;

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

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


       // Getting a reference to Close button, and close the popup when clicked.
       Button close = (Button) layout.findViewById(R.id.close);
       close.setOnClickListener(new OnClickListener() {

         @Override
         public void onClick(View v) {
           changeSortPopUp.dismiss();
         }
       });

}

You can use LayoutInflater

LayoutInflater inflater = (LayoutInflater) act.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.custom_layout, null); //custom_layout is your xml file which contains popuplayout
LinearLayout layout = (LinearLayout) view.findViewById(R.id.popuplayout);