2011-09-21 169 views
55

我需要在android中創建一個彈出窗口。我的要求是在第1頁我會保留一個超鏈接,當我點擊它應該打開一個彈出窗口。我已經經歷了很多教程並嘗試過,但沒有一個適合我。請幫助我如何在android中創建一個彈出窗口。如何在android中創建一個彈出窗口?

+2

查看下面的鏈接和示例http://www.mobilemancer.com/2011/01/08/popup-window-in-android/ http://stackoverflow.com/questions/1967863/is-這裏有一個簡單的示例的popupwindow類使用android-v2-0 –

+0

對於尋找更多的例子,我可以推薦這個存儲庫:https://github.com/oliguo/android- PopupWindow 它包含兩種類型的彈出窗口和它的佈局而不是代碼。 –

+0

請參閱[如何製作一個簡單的android彈出窗口](https://stackoverflow.com/questions/38987442/how-to-make-a-simple-android-popup-window/45077688#45077688) – Suragch

回答

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

嗨,謝謝示例代碼..它工作正常,我需要將textview和按鈕到該彈出窗口。我們是否可以在xml佈局中創建這些按鈕和文字瀏覽,並且可以將它用於該彈出窗口? –

+0

爲什麼不是...........你可以在彈出窗口中使用任何Android小部件 –

+0

好的,謝謝..我已經創建了一個佈局main1.xml,現在如何添加,以彈出窗口?我的意思是一般我們給像setContentView(R.layout.main1); ...同樣如何將XML文件添加到彈出窗口? –