当前位置: 首页 > 知识库问答 >
问题:

如何更改片段[重复]中的主要活动变量

连翰
2023-03-14

我正在创建一个包含两个片段的活动。一个用于求和减法,另一个用于显示总值主活动包含变量(总值),如果片段中的值为总和,则变量(总值)按输入值增加,否则按输入值减少

这个变量(总数)显示在第二个片段中

共有3个答案

明财
2023-03-14

解决方案1:

//activity
    val variable=0

//fragment
    activity?.variable = newValue

解决方案2:使用单例类

object AppData{
    val variable=0
}

//activity : use the variable
AppData.variable

//fragment
AppData.variable = newValue

解决方案3:(推荐)使用MVVM

class ActivityVM : ViewModel {
        val variable = MutableLiveData<Int>()
    }

//activity
activityVM= ViewModelProviders.of(activity).get(ActivityVM::class.java)

activityVM.variable.observe(this,Observer{ 
//it <- value
})

//fragemnt
activityVM= ViewModelProviders.of(activity).get(ActivityVM::class.java)
activityVM.variable.postValue(newValue)
翟承志
2023-03-14

将此功能放在活动中:

public void setTotal(int newTotal) {
this.total = newTotal;
}

然后在你的片段中调用它:

((YourActivityClassName)getActivity()。setTotal(新总数)

尽管我建议您将应用程序范围内需要的变量存储在共享首选项或共享空间中(如果您有许多变量)。或者使用捆绑包在活动/片段之间发送数据。

希望这有帮助!

鲍理
2023-03-14

您可以使用接口获取和设置数据片段与活动。或者您可以创建静态变量,并从类名调用它

public static int total=0

在要调用并更改其值的片段中,只需像这样调用MainActivity。总计=您的价值

 类似资料:
  • 问题内容: 我想将自己更改为我尝试过的内容,但无法将我的活动更改为片段。有人可以告诉我该怎么做吗?在哪里编辑我是Android上的新手。请告诉我和在此先感谢 这是我的活动: 问题答案: 只要了解一些步骤,您就可以现在和将来轻松地将Activity转换为Fragment ..: 首先,不要扩展,只要扩展.. 例如: 然后覆盖.. 然后通过LayoutInflater扩展布局,并分配给进一步用于子视图

  • 公共视图onCreateView(LayoutInflater inflater、ViewGroup容器、Bundle savedInstanceState){ 但是它崩溃了,错误日志如下所示: 是 我已经在中为添加了init,如下所示: 我的场景是: Activity1-->Activity1-->片段 Splash的XML如下所示: 我有两项活动。片段由activity2调用,我想改变Acti

  • 我的Android应用程序有问题,我正在使用Android StudioIDE进行开发。差不多是当我把应用程序放在后台几分钟,或者被系统杀死,或者我混合了片段的不同布局时。我在下面放了一张图片: 如果你有其他人也写的话,我已经尝试了各种方法。提前谢谢你。

  • 我是一个新的Android系统,我有一个按钮,当我点击按钮时,它会显示一个弹出菜单。 它有两个项目,白天和晚上。 当我按夜间按钮时,整个活动主题更改为黑色,文本颜色为白色,而按白天按钮时,活动主题更改为白色,文本颜色为黑色。 我有一个代码,但它只更改弹出菜单。 我如何更改活动主题。 我的代码: style.xml

  • 我有一个活动,将使用下面的方法动态添加片段。 FragmentA有一个文本视图。我的活动中有一个导航抽屉,我想根据在导航抽屉中单击的项目在片段(例如FragmentA、FragmentB和FragmentC)之间切换。当更改为另一个片段时,如何保存片段的状态。我已经实现了onSavedInstance(Bundle outState)和onActivityCreated(Bundle savedI

  • 当我关闭一个活动时,我希望它将一个值传递给另一个活动中的一个片段,我该怎么做? 活动B 片段A 代码不起作用,因为它给了我一个错误 谢啦