在其他类似的弹出窗口中使用弹出窗口中的相同xml代码?

时间:2017-04-05 13:03:50

标签: android xml popup

我需要打开一个弹出窗口,然后在我的活动中转到另一个。 我已经能够做到这一点,这两个弹出窗口是相同的,但每个弹出窗口都为不同的变量赋值。 这两个弹出窗口完全相同,唯一改变的只是文本。 我想知道是否有任何方法可以在MainActivity中缩小我的代码,某些方法可以为弹出窗口使用相同的按钮, 因为将来还会有3个弹出窗口(相当于这些) 这是弹出窗口xml和我的活动代码:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:background="@android:color/transparent"
              android:orientation="vertical">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:background="#4d4dff"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="10dp"
            android:orientation="vertical">

            <TextView
                android:id="@+id/textoPoup1"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="1 - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
                android:textColor="@android:color/white"
                android:textSize="20dp" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

                <Button
                    android:id="@+id/btnP1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="0" />

                <Button
                    android:id="@+id/btnP2"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="50" />

                <Button
                    android:id="@+id/btnP3"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="100" />
            </LinearLayout>


            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">


                <Button
                    android:id="@+id/btnP4"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="150" />

                <Button
                    android:id="@+id/btnP5"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="200" />


                <Button
                    android:id="@+id/btnP6"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="250" />
            </LinearLayout>

            <Button
                android:id="@+id/btnNext"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Next Popup" />
        </LinearLayout>
    </LinearLayout>

</LinearLayout>

其他弹出窗口:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:background="@android:color/transparent"
              android:orientation="vertical">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:background="#4d4dff"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="10dp"
            android:orientation="vertical">

            <TextView
                android:id="@+id/textoPoup1"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="2 - Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi "
                android:textColor="@android:color/white"
                android:textSize="20dp" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

                <Button
                    android:id="@+id/btnP1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="0" />

                <Button
                    android:id="@+id/btnP2"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="50" />

                <Button
                    android:id="@+id/btnP3"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="100" />
            </LinearLayout>


            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">


                <Button
                    android:id="@+id/btnP4"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="150" />

                <Button
                    android:id="@+id/btnP5"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="200" />


                <Button
                    android:id="@+id/btnP6"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="250" />
            </LinearLayout>

            <Button
                android:id="@+id/btnNext"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Next Popup" />
        </LinearLayout>

    </LinearLayout>
</LinearLayout>

MainActivity:

    public class MainActivity extends AppCompatActivity implements View.OnClickListener
{
    private Button btnPopup;
    private int value1;
    private int value2;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnPopup = (Button) findViewById(R.id.btnPopup);

        btnPopup.setOnClickListener(this);
    }

    @Override
    public void onClick(View v)
    {
        if (v.getId() == R.id.btnPopup)
        {

            //-----------------------------------Second POPUP----------------------------------------------------
            LayoutInflater layoutInflater2 = (LayoutInflater) getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE);
            View popupView2 = layoutInflater2.inflate(R.layout.popup2, null);
            final PopupWindow popupWindow2 = new PopupWindow(popupView2,
                    ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);

            final Button btn2P1 = (Button) popupView2.findViewById(R.id.btnP1);
            final Button btn2P2 = (Button) popupView2.findViewById(R.id.btnP2);
            final Button btn2P3 = (Button) popupView2.findViewById(R.id.btnP3);
            final Button btn2P4 = (Button) popupView2.findViewById(R.id.btnP4);
            final Button btn2P5 = (Button) popupView2.findViewById(R.id.btnP5);
            final Button btn2P6 = (Button) popupView2.findViewById(R.id.btnP6);
            final Button btn2Next = (Button) popupView2.findViewById(R.id.btnNext);
            btn2Next.setEnabled(false);

            btn2P1.setOnClickListener(new Button.OnClickListener()
            {

                @Override
                public void onClick(View v)
                {
                    // TODO Auto-generated method stub
                    value2 = 0;
                    btn2P1.setEnabled(false);
                    btn2P2.setEnabled(true);
                    btn2P3.setEnabled(true);
                    btn2P4.setEnabled(true);
                    btn2P5.setEnabled(true);
                    btn2P6.setEnabled(true);
                    btn2Next.setEnabled(true);
                }
            });

            btn2P2.setOnClickListener(new Button.OnClickListener()
            {

                @Override
                public void onClick(View v)
                {
                    // TODO Auto-generated method stub
                    value2 = 50;
                    btn2P1.setEnabled(true);
                    btn2P2.setEnabled(false);
                    btn2P3.setEnabled(true);
                    btn2P4.setEnabled(true);
                    btn2P5.setEnabled(true);
                    btn2P6.setEnabled(true);
                    btn2Next.setEnabled(true);
                }
            });

            btn2P3.setOnClickListener(new Button.OnClickListener()
            {

                @Override
                public void onClick(View v)
                {
                    // TODO Auto-generated method stub
                    value2 = 100;
                    btn2P1.setEnabled(true);
                    btn2P2.setEnabled(true);
                    btn2P3.setEnabled(false);
                    btn2P4.setEnabled(true);
                    btn2P5.setEnabled(true);
                    btn2P6.setEnabled(true);
                    btn2Next.setEnabled(true);
                }
            });

            btn2P4.setOnClickListener(new Button.OnClickListener()
            {

                @Override
                public void onClick(View v)
                {
                    // TODO Auto-generated method stub
                    value2 = 150;
                    btn2P1.setEnabled(true);
                    btn2P2.setEnabled(true);
                    btn2P3.setEnabled(true);
                    btn2P4.setEnabled(false);
                    btn2P5.setEnabled(true);
                    btn2P6.setEnabled(true);
                    btn2Next.setEnabled(true);
                }
            });

            btn2P5.setOnClickListener(new Button.OnClickListener()
            {

                @Override
                public void onClick(View v)
                {
                    // TODO Auto-generated method stub
                    value2 = 200;
                    btn2P1.setEnabled(true);
                    btn2P2.setEnabled(true);
                    btn2P3.setEnabled(true);
                    btn2P4.setEnabled(true);
                    btn2P5.setEnabled(false);
                    btn2P6.setEnabled(true);
                    btn2Next.setEnabled(true);
                }
            });

            btn2P6.setOnClickListener(new Button.OnClickListener()
            {

                @Override
                public void onClick(View v)
                {
                    // TODO Auto-generated method stub
                    value2 = 250;
                    btn2P1.setEnabled(true);
                    btn2P2.setEnabled(true);
                    btn2P3.setEnabled(true);
                    btn2P4.setEnabled(true);
                    btn2P5.setEnabled(true);
                    btn2P6.setEnabled(false);
                    btn2Next.setEnabled(true);
                }
            });

            btn2Next.setOnClickListener(new View.OnClickListener()
            {
                @Override
                public void onClick(View v)
                {
                    popupWindow2.dismiss();
                    //popupWindow3.showAsDropDown(btnPopup, 50, -30);
                }
            });


            //-----------------------------------First POPUP----------------------------------------------------
            LayoutInflater layoutInflater1 = (LayoutInflater) getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE);
            View popupView1 = layoutInflater1.inflate(R.layout.popup1, null);
            final PopupWindow popupWindow1 = new PopupWindow(popupView1,
                    ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);

            final Button btnP1 = (Button) popupView1.findViewById(R.id.btnP1);
            final Button btnP2 = (Button) popupView1.findViewById(R.id.btnP2);
            final Button btnP3 = (Button) popupView1.findViewById(R.id.btnP3);
            final Button btnP4 = (Button) popupView1.findViewById(R.id.btnP4);
            final Button btnP5 = (Button) popupView1.findViewById(R.id.btnP5);
            final Button btnP6 = (Button) popupView1.findViewById(R.id.btnP6);
            final Button btnNext = (Button) popupView1.findViewById(R.id.btnNext);
            btnNext.setEnabled(false);

            btnP1.setOnClickListener(new Button.OnClickListener()
            {

                @Override
                public void onClick(View v)
                {
                    // TODO Auto-generated method stub
                    value2 = 0;
                    btnP1.setEnabled(false);
                    btnP2.setEnabled(true);
                    btnP3.setEnabled(true);
                    btnP4.setEnabled(true);
                    btnP5.setEnabled(true);
                    btnP6.setEnabled(true);
                    btnNext.setEnabled(true);
                }
            });

            btnP2.setOnClickListener(new Button.OnClickListener()
            {

                @Override
                public void onClick(View v)
                {
                    // TODO Auto-generated method stub
                    value2 = 50;
                    btnP1.setEnabled(true);
                    btnP2.setEnabled(false);
                    btnP3.setEnabled(true);
                    btnP4.setEnabled(true);
                    btnP5.setEnabled(true);
                    btnP6.setEnabled(true);
                    btnNext.setEnabled(true);
                }
            });

            btnP3.setOnClickListener(new Button.OnClickListener()
            {

                @Override
                public void onClick(View v)
                {
                    // TODO Auto-generated method stub
                    value2 = 100;
                    btnP1.setEnabled(true);
                    btnP2.setEnabled(true);
                    btnP3.setEnabled(false);
                    btnP4.setEnabled(true);
                    btnP5.setEnabled(true);
                    btnP6.setEnabled(true);
                    btnNext.setEnabled(true);
                }
            });

            btnP4.setOnClickListener(new Button.OnClickListener()
            {

                @Override
                public void onClick(View v)
                {
                    // TODO Auto-generated method stub
                    value2 = 150;
                    btnP1.setEnabled(true);
                    btnP2.setEnabled(true);
                    btnP3.setEnabled(true);
                    btnP4.setEnabled(false);
                    btnP5.setEnabled(true);
       enter code here             btnP6.setEnabled(true);
                    btnNext.setEnabled(true);
                }
            });

            btnP5.setOnClickListener(new Button.OnClickListener()
            {

                @Override
                public void onClick(View v)
                {
                    // TODO Auto-generated method stub
                    value2 = 200;
                    btnP1.setEnabled(true);
                    btnP2.setEnabled(true);
                    btnP3.setEnabled(true);
                    btnP4.setEnabled(true);
                    btnP5.setEnabled(false);
                    btnP6.setEnabled(true);
                    btnNext.setEnabled(true);
                }
            });

            btnP6.setOnClickListener(new Button.OnClickListener()
            {

                @Override
                public void onClick(View v)
                {
                    // TODO Auto-generated method stub
                    value2 = 250;
                    btnP1.setEnabled(true);
                    btnP2.setEnabled(true);
                    btnP3.setEnabled(true);
                    btnP4.setEnabled(true);
                    btnP5.setEnabled(true);
                    btnP6.setEnabled(false);
                    btnNext.setEnabled(true);
                }
            });

            btnNext.setOnClickListener(new View.OnClickListener()
            {
                @Override
                public void onClick(View v)
                {
                    popupWindow1.dismiss();
                    popupWindow2.showAtLocation(btnPopup, Gravity.CENTER, 0, 0);
                }
            });
            popupWindow1.showAtLocation(btnPopup, Gravity.CENTER, 0, 0);
        }
    }
}

1 个答案:

答案 0 :(得分:1)

为什么不以编程方式设置文本。使用一个对话框,您将在每次使用相同的布局时显示该对话框,并在运行时设置文本。希望它能帮助你。让我知道。