Android 在我的所有应用程序中显示视图

Android 在我的所有应用程序中显示视图,android,android-activity,textview,Android,Android Activity,Textview,我需要在所有活动中显示文本视图,但要一个接一个地显示文本视图需要做很多工作,因为我有+10个活动 我的目标是当我点击一个按钮时,在应用程序底部显示一个文本视图(“导入…”)。当我收到推送通知时,此文本视图将消失,并且我欠一个带有响应的弹出窗口(该弹出窗口也必须出现在任何活动中) 我的项目有一个自定义的抽象BaseActivity,所有的活动都扩展了它 public abstract class BaseActivity extends AppCompatActivity { @Overrid

我需要在所有活动中显示文本视图,但要一个接一个地显示文本视图需要做很多工作,因为我有+10个活动

我的目标是当我点击一个按钮时,在应用程序底部显示一个文本视图(“导入…”)。当我收到推送通知时,此文本视图将消失,并且我欠一个带有响应的弹出窗口(该弹出窗口也必须出现在任何活动中)

我的项目有一个自定义的抽象BaseActivity,所有的活动都扩展了它

public abstract class BaseActivity extends AppCompatActivity {


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

protected void setActionBar(@IdRes int idResToolbar) {

    Toolbar toolbar = (Toolbar) findViewById(idResToolbar);
    setSupportActionBar(toolbar);
    updateFont(toolbar);
}
// ...
}
我想我可以用它来达到我的目的,但不知道如何去做

如果有人有什么建议,我很乐意听

提前感谢。

您可以在基本活动的onCreate()中编写如下内容

setContentView(R.layout.base_layout);
在onCreate()方法开始时的每个其他活动中,只需使用super.onCreate()即可

除此之外,为了支持不同的布局,在onCreate()中添加类似的内容(例如一个活动)


如果根组是基本活动中的一个视图组,您将为每个其他活动添加其他组件

为内容使用片段(而不是不同的活动),然后您可以向包含片段的活动添加全局视图


如果您不想这样做,您必须修改基类中的布局。

创建一个服务,该服务创建一个可以在其他应用程序上绘制的视图(将需要清单中的)


您可以使用一个开放源代码库,例如或参考示例,我建议您使用包含文本视图的,并创建一个单独的类,根据给定的上下文初始化PopupWindow


现在,在您的所有活动中,您将可以根据需要控制显示和隐藏窗口。确保将所有必需的实用程序方法放在单独的类中,以避免一致性,例如隐藏和显示窗口。设置窗口文本视图的文本等。

最好使用片段,而不是使用许多活动。但是,如果您不想这样做,我建议您创建一个工厂,它将生成所有活动的textview。然后您必须将其添加到每个活动的视图中。

我从不使用根组,您可以添加其使用示例?此方法中的根组参数是一个参数。它是一个视图组类或其扩展之一(linearLayout、RelativeLayout等)。因此,在基本活动的xml文件中,应该有一个ViewGroup子类(不能将代码放在注释中,需要另一篇文章)。该viewGroup子类必须有一个id。在生成super.onCreate()后,在代码中可以通过id找到该viewGroup-LinearLayout myLinLay=(LinearLayout)findViewById(R.id.linLay_id);然后将此minLinLay作为参数添加到充气机中。充气方法谢谢您的解释,这对您帮助很大!!不,snackbar不是解决方案创建工厂?你能进一步解释一下吗?ThanksA factory是一个类,你给它一些参数,它会返回给你一个创建的对象,例如在你的案例中的
textview
,但是我可以将弹出窗口定位在屏幕的任何部分?(在底部)是的,您可以使用方法popup.showAtLocation(父级,Gravity.TOP | Gravity.LEFT,location.LEFT,location.bottom)控制显示窗口;我尝试显示一个弹出窗口,但收到一个错误:t“oken null无效;您的活动正在运行吗?”这是我的BaseActivity中的一个方法的代码,我在MainActivity中调用它:LayoutInflater LayoutInflater=。。。最终视图popupView=LayoutFlater.inflate(R.layout.dialog,null);final PopupWindow PopupWindow=新的PopupWindow(popupView、LayoutParams.WRAP_内容、LayoutParams.WRAP_内容);popupWindow.showAtLocation(popupView,Gravity.BOTTOM,100100);我曾尝试在BaseActivity中添加布局,但从未显示它,我猜是扩展了活动重叠。
    LayoutInflater inflater = getLayoutInflater();
    inflater.inflate(R.layout.activity_1_layout,rootGroup)