2011-09-21 5 views
55

Ho bisogno di creare una finestra popup in Android. Il mio requisito è nella pagina 1 Terrò un collegamento ipertestuale e quando clicco su di esso dovrebbe aprire una finestra popup . Ho passato molti tutorial e li ho provati, ma nessuno di loro ha funzionato per me. Per favore aiutami su come creare una finestra popup in Android.Come creare una finestra popup in Android?

+2

vedere I link qui sotto e gli esempi http://www.mobilemancer.com/2011/01/08/popup-window-in-android/ http://stackoverflow.com/questions/1967863/is- there-a-simple-example-of-the-popupwindow-class-using-android-v2-0 –

+0

Per le persone che cercano altri esempi, posso raccomandare questo repository: https://github.com/oliguo/android- PopupWindow Contiene due tipi di popup e il layout di esso in XML anziché codice. –

+0

Vedere anche [Come creare una semplice finestra popup Android] (https://stackoverflow.com/questions/38987442/how-to-make-a-simple-android-popup-window/45077688#45077688) – Suragch

risposta

76
import android.app.Activity; 
import android.os.Bundle; 
import android.view.Gravity; 
import android.view.View; 
import android.widget.Button; 
import android.widget.LinearLayout; 
import android.widget.PopupWindow; 
import android.widget.TextView; 
import android.view.ViewGroup.LayoutParams; 

public class ShowPopUpWindow extends Activity { 

    boolean isClicked = true; 
    PopupWindow popUpWindow; 
    LayoutParams layoutParams; 
    LinearLayout mainLayout; 
    Button btnClickHere; 
    LinearLayout containerLayout; 
    TextView tvMsg; 



    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     containerLayout = new LinearLayout(this); 
     mainLayout = new LinearLayout(this); 
     popUpWindow = new PopupWindow(this); 


     btnClickHere = new Button(this); 
     btnClickHere.setText("Click Here For Pop Up Window !!!"); 
     btnClickHere.setOnClickListener(new View.OnClickListener() { 

      public void onClick(View v) { 
       if (isClicked) { 
        isClicked = false; 
        popUpWindow.showAtLocation(mainLayout, Gravity.BOTTOM, 10, 10); 
        popUpWindow.update(50, 50, 320, 90); 
       } else { 
        isClicked = true; 
        popUpWindow.dismiss(); 
       } 
      } 

     }); 

     tvMsg = new TextView(this); 
     tvMsg.setText("Hi this is pop up window..."); 

     layoutParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, 
       LayoutParams.WRAP_CONTENT); 
     containerLayout.setOrientation(LinearLayout.VERTICAL); 
     containerLayout.addView(tvMsg, layoutParams); 
     popUpWindow.setContentView(containerLayout); 
     mainLayout.addView(btnClickHere, layoutParams); 
     setContentView(mainLayout); 

    } 
} 
+0

Ciao grazie per il codice di esempio. funziona perfettamente Ho bisogno di posizionare textview e pulsanti per quella finestra popup. Possiamo creare quei pulsanti e visualizzazioni testuali nel layout xml e possiamo usarlo per quella finestra popup? –

+0

sì perché no ........... qualsiasi widget di Android si può usare nella finestra popup –

+0

ok grazie .. Ho creato un layout main1.xml e ora come aggiungerlo alla finestra pop-up? Voglio dire in generale diamo come setContentView (R.layout.main1); ... in modo simile come aggiungere il file xml alla finestra popup? –