android - 在多用户应用程序上存储首选项

标签 android sharedpreferences

我正在开发一个安卓应用程序。它有两种类型的用户,老师和学生。我希望使用共享首选项在两个用户之间进行通信。

基本上,我有一个教学屏幕,上面有四个带有不同消息的 TextView。当切换值为 1(默认值)时,TextView 文本设置为“”。

在学生屏幕上,他们有 4 个按钮。点击每个按钮后,切换值将更改为 0,然后消息将显示在教师的 View 中。这在我以学生身份登录时有效,单击按钮,然后以教师身份登录。但是,我希望它能在两种不同的设备上运行,这样当学生点击按钮时,老师会看到消息。

下面是一些代码 fragment :

首先是学生 Activity :

Assistance.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                toggleAssistance(view);
            }
        });



public void toggleAssistance(View view){
        SharedPreferences sharedPreferences = getSharedPreferences("requestToggles", Context.MODE_PRIVATE);

        SharedPreferences.Editor editor = sharedPreferences.edit();

        editor.putInt("assistanceToggle", 0);
        editor.apply();
    }

其次,教师 Activity :

asstToggle = sharedPreferences.getInt("assistanceToggle", 1);


if(asstToggle==1){
            Assistance.setText("");
            clearAssistance.setVisibility(View.GONE);
        }

Clear assistance 只是一个按钮,基本上与 toggleAssistance 相反(它将值设置为 1)。当没有消息时,无需显示此按钮。

任何人都可以就如何在设备之间进行这项工作提供帮助或建议吗?谢谢!

最佳答案

不可以,您不能使用共享首选项在设备之间进行通信,您的首选项值存储在本地设备上。您应该使用像 Firebase 这样的远程数据存储系统来实现一个解决方案,让两个不同的设备相互交互。

关于android - 在多用户应用程序上存储首选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51773010/

相关文章:

android - 使用 Mifare Ultralight C 卡在 Android 上收发失败

java - 崩溃保存按钮切换状态

android onDestroy 仅在 vd 上工作正常

android - gradle 如何确定从哪个存储库安装?

android - 如何从另一个类访问共享首选项 bool 值

android - 如何使用 Kotlin 在 Android 中保存开关设置

flutter - 我在另一个页面上使用共享首选项时遇到问题

android - 必须从Maven或自定义位置提供aapt2之一

android - 选项卡式 Activity 下的子 fragment 不起作用

java - 迭代 JSON 响应的结果 - Android + Retrofit + Moshi