我正在开发一个android应用程序。它有两种类型的用户,教师和学生。我希望使用“共享首选项”在两个用户之间进行通信。
基本上,我有一个教学屏幕,上面有四个带有不同消息的TextViews。切换值为1(默认值)时,TextView文本设置为“”。
在学生屏幕上,它们具有4个按钮。按下每个按钮后,切换值将更改为0,然后该消息将显示在教师视图中。当我以学生身份登录时,单击该按钮,然后以教师身份登录时,此方法有效。但是,我希望它可以在两种不同的设备上运行,以便当学生单击按钮时,老师可以看到消息。
以下是一些代码段:
首先,学生活动:
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();
}
其次,老师的活动:
asstToggle = sharedPreferences.getInt("assistanceToggle", 1);
if(asstToggle==1){
Assistance.setText("");
clearAssistance.setVisibility(View.GONE);
}
清除协助只是一个按钮,基本上执行toggleAssistance的相反操作(它将值设置为1)。不显示消息时无需显示此按钮。
任何人都可以就如何在设备之间进行这项工作提供帮助或建议吗?谢谢!
答案 0 :(得分:1)
否,您不能使用共享的首选项在设备之间进行通信,您的首选项值存储在设备本地。您应该使用Firebase之类的远程数据存储系统来实现一种解决方案,其中两个不同的设备相互交互。
答案 1 :(得分:0)
在真实的专业世界中,您在android环境中开发的内容被视为前端。
要在2个用户(2个不同的android环境/机器)之间创建通信,您需要一个后端环境。
如果要存储可由不同机器的2个或更多android用户访问的数据,则需要将数据存储在“后端”中。目前最流行的数据库系统是MySQL。