gpt4 book ai didi

java - 我们可以在android中使元素全局化吗

转载 作者:行者123 更新时间:2023-12-01 07:35:13 25 4
gpt4 key购买 nike

我正在使用

<Chronometer android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/chrono"
android:visibility="gone" />

在我的一项 Activity 中,现在我的问题是我可以将其设置为全局的所有 Activity ,以便我可以向我的 Android 应用程序中的每个 Activity 展示其值(value)吗?

如果是,那么如何做到这一点,请举例,因为我是 Android 新手?

这是我的计时器代码

Chronometer stopWatch;

stopWatch.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener(){
@Override
public void onChronometerTick(Chronometer arg0) {
countUp = (SystemClock.elapsedRealtime() - arg0.getBase()) / 1000;
long min = countUp / 60;
long sec = countUp % 60;
String minStr = "";
String secStr="";

if(min < 10)
{
minStr = "0"+min;
}
else
{
minStr = ""+min;
}
if(sec<10)
{
secStr = "0"+sec;
}
else
{
secStr = ""+sec;
}

// String asText = (countUp / 60) + ":" + (countUp % 60);
String asText = minStr + ":" + secStr;
textGoesHere.setText(asText);
}
});
stopWatch.start();

最佳答案

这是一个想法。为您的Chronometer创建一个单独的布局和<include />它出现在所有需要天文台表的布局中。

现在您可以使用 Singleton模式或SharedPreferences存储计时器的开始时间当前状态(暂停、运行、停止、重置)等属性。每当您开始一项新 Activity 时,都会获取计时器的状态并将其显示在计时器上。

例如,如果当前状态正在运行,那么您可能必须启动一个线程来更新计时器,或者如果计时器停止,只需获取开始时间停止时间 来自您的SharedPreference或您的Singleton类并在计时器上显示它。

例如,考虑以下场景。为了简单起见,我们有 2 个 Activity :ActivityAActivityB

现在,这是您的计时器的一些状态,您的计时器可能会有所不同。

  1. 准备就绪(00:00 - 您的计时器已准备好运行)
  2. 正在运行(计时器正在运行)
  3. 已暂停(计时器已暂停,可以恢复)
  4. 已停止(您已停止计时器,它会显示已用时间,下一个可能的状态将为 1,即就绪。)

您还需要其他几个参数,例如,

  1. 计时器开始时间(System.currentTimeInMillis() 减去此时间即表示已过去)
  2. 计时器停止时间(用于计算计时器暂停和停止的时间)

让我们考虑一下这种情况。您正在从 ActivityA 启动计时器,并希望保留 ActivityB 上的状态。以下是您可能想做的一系列事情。

当您通过任何事件启动计时器时 - 例如单击按钮,您必须将开始时间保存在 SharedPreference 中.

现在您想要导航到 ActivityB,那么您必须将计时器状态保存到您的 SharedPreferenceonStop() ActivityA 的方法。

现在开始之后ActivityB ,在 onResume()方法从 SharedPreference 获取开始时间System.currentTimeInMillis()减去开始时间将得到耗时。接下来,您必须从 SharedPreference 获取计时器状态 .

如果状态是正在运行,那么您必须启动一个线程来更新计时器。如果计时器停止,那么就足以显示计时器上耗时。

这是解决方案的概要。您可以了解SharedPreferences来自here .

另外,你需要熟悉Activity的生命周期,可以从 here 学习。 .

关于java - 我们可以在android中使元素全局化吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13024126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com