如何在活动顶部叠加视图?

时间:2011-04-21 19:05:04

标签: android android-activity view android-context

有没有办法在当前Activity的视图之上动态添加View?需要注意的一点是,这需要从另一个只能访问Activity上下文的类中完成。

例如:

public class ActivityClass extends Activity
{
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        …       

        PopupClass popup = new PopupClass(this);
        popup.showPopup();
    }

}


public class PopupClass
{
    Context context;

    void Popup(Context ctx)
    {
        context = ctx;
    }

    void showPopup()
    {
        // Add a view on top of the current Activity.
    }
}

PopupClass是否有办法只知道上下文就能将视图添加到当前的Activity中?

PopupClass不知道有关Activity的任何其他信息,也不能将View传递给ActivityClass以供ActivityClass添加。

3 个答案:

答案 0 :(得分:4)

答案 1 :(得分:1)

我正在为此目的使用相对布局。 我想你也可以使用框架布局。 看看这里: http://www.learn-android.com/2010/01/05/android-layout-tutorial/5/

答案 2 :(得分:0)

为什么不让PopClass扩展Activity并在PopupClass活动的AndroidManifest.xml属性中设置android:theme="@android:style/Theme.Dialog"

然后在ActivityClass中,您可以使用...

,而不是使用您展示的示例中的代码
Intent i = new Intent("PopupClass.class");
startActivityForResult(i);

当PopupClass活动完成后,它可以在另一个Intent中设置返回数据并完成。

然后在ActivityClass中覆盖onActivityResult(...)并处理返回的Intent。