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

问题描述:

我需要打开一个弹出窗口,然后去另一个在我的活动。 我已经能够做到这一点,这两个弹出窗口是相同的,但他们每个人分配一个值在不同的变量。 这两个弹出式广告是完全一样的,唯一改变的事情就是文字。 我想知道是否有什么办法可以使我的代码在MainActivity较小,一些方法来使用相同的两种键弹出窗口, 因为在未来将有3个弹出窗口(等于这些) 这里是弹出窗口的XML和我的活动代码:使用与其他类似弹出窗口中的弹出窗口相同的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

为什么不实用的设置文本,你不需要创建相同的屏幕的2弹出,当你点击1弹出式按钮,当时一些mili sec.trans动画​​实际上改变标题文本.. :) –

+0

感谢您的帮助,但是这第二个弹出设置一个值从第一个弹出不同的变量,它可能无法工作,因为你需要更改文本,并将该值分配给不同的变量。 –

+0

你可以用布尔值true和false来处理它 –

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

+0

但是我怎样才能做第二次弹出从第一个弹出窗口分配值到不同的变量?感谢您的帮助 –

+0

[this](http://*.com/a/26475582/6904440)将使您了解如何以及如何操作。 – Simo

+0

创建对话框后,做这个 - yourTextView.setText(“你的价值”); – Simo