2011-09-21 167 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文件添加到弹出窗口? –