Set custom layout in popup window in android

前端 未结 6 1826
别那么骄傲
别那么骄傲 2020-12-05 23:42

I have a problem with popup window. I want to create popup window with my own layout. This is code:

public class PopupWindowView extends PopupWindow{

    P         


        
相关标签:
6条回答
  • 2020-12-06 00:23

    Hi check this post consists of Solution to your question

    Try this code :

    public class ShowPopUp extends Activity {
    
    PopupWindow popUp;
    LinearLayout layout;
    TextView tv;
    LayoutParams params;
    LinearLayout mainLayout;
    Button but;
    boolean click = true;
    
    
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        popUp = new PopupWindow(this);
        layout = new LinearLayout(this);
        mainLayout = new LinearLayout(this);
        tv = new TextView(this);
        but = new Button(this);
        but.setText("Click Me");
        but.setOnClickListener(new OnClickListener() {
    
            public void onClick(View v) {
                if (click) {
                    popUp.showAtLocation(mainLayout, Gravity.BOTTOM, 10, 10);
                    popUp.update(50, 50, 300, 80);
                    click = false;
                } else {
                    popUp.dismiss();
                    click = true;
                }
            }
    
        });
        params = new LayoutParams(LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT);
        layout.setOrientation(LinearLayout.VERTICAL);
        tv.setText("Hi this is a sample text for popup window");
        layout.addView(tv, params);
        popUp.setContentView(layout);
        // popUp.showAtLocation(layout, Gravity.BOTTOM, 10, 10);
         mainLayout.addView(but, params);
         setContentView(mainLayout);
       }
     }
    
    0 讨论(0)
  • 2020-12-06 00:28

    try this......

    public void popUpWindow() {
        final Dialog dialog = new Dialog(MainActivity.this);
        dialog.setContentView(R.layout.client_details);
        dialog.setTitle("Client Details");
        dialog.show();
    }
    
    0 讨论(0)
  • 2020-12-06 00:36

    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();

    0 讨论(0)
  • 2020-12-06 00:43

    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);
    
    0 讨论(0)
  • 2020-12-06 00:43
        alert=(Button)findViewById(R.id.click);
        detail=(ImageView)findViewById(R.id.goDetail);
    
        alert.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {
                // custom dialog
    
                final Dialog dialog = new Dialog(context);
                dialog.setContentView(R.layout.custom);
                dialog.setTitle(Html.fromHtml("<font color='#EC407A'>About</font>"));
                Button dialogButton = (Button) dialog.findViewById(R.id.dialogOK);
                ImageView img = (ImageView) dialog.findViewById(R.id.goDetail);
                // if button is clicked, close the custom dialog
                dialogButton.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        dialog.dismiss();
                        Toast.makeText(getApplicationContext(),"Dismissed..!!",Toast.LENGTH_SHORT).show();
                    }
                });
                img.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        i=new Intent(getApplication(),CustomDetail.class);
                        setIntent(i);
                        Toast.makeText(Dashboard.this, "Check detail ", Toast.LENGTH_SHORT).show();
                    }
                });
                dialog.show();
            }
    
    0 讨论(0)
  • 2020-12-06 00:44

    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();
             }
           });
    
    }
    
    0 讨论(0)
提交回复
热议问题