有没有办法在当前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添加。
答案 0 :(得分:4)
我使用自定义对话框。
http://www.androidpeople.com/android-custom-dialog-example
http://www.helloandroid.com/tutorials/how-display-custom-dialog-your-android-application
答案 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。