2017-04-05 53 views
0

我需要打開一個彈出窗口,然後去另一個在我的活動。 我已經能夠做到這一點,這兩個彈出窗口是相同的,但他們每個人分配一個值在不同的變量。 這兩個彈出式廣告是完全一樣的,唯一改變的事情就是文字。 我想知道是否有什麼辦法可以使我的代碼在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來處理它 –

回答

1

爲什麼不以編程方式設置文本。使用一個對話框,您將每次使用相同的佈局顯示,並在運行時設置文本。希望它能幫助你。讓我知道。

+0

但是我怎樣才能做第二次彈出從第一個彈出窗口分配值到不同的變量?感謝您的幫助 –

+0

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

+0

創建對話框後,做這個 - yourTextView.setText(「你的價值」); – Simo