大家,早安,
我在创建我的第一个应用程序的过程中再次遇到问题。这次使用 SharedPreferences 文件。
我有 2 个活动必须使用相同的 SharedPreferences 文件。第一个是 MainActivity,第二个是数据的编辑布局。
在 MainActivity 我有以下方法,我使用数据连接到 PLC:
//initialize the SharedPreferences variables for the PLC Data and Connection
m_DataPLC = getSharedPreferences("CFTPreferences",CONTEXT_IGNORE_SECURITY);
m_DataEditorPLC = m_DataPLC.edit();
//Gets the number from the IP Address for the connection with the PLC
//As default, the system takes the value of a static string value
//This is when the SharedPreferences file is empty
m_IpAddress = getResources().getString(R.string.ip_Address);
m_NewIpAddress = m_DataPLC.getString("newIpAddress", m_NewIpAddress);
if(m_NewIpAddress == null)
{
m_DataEditorPLC.putString("newIpAddress", m_IpAddress.toString());
m_DataEditorPLC.commit();
m_OldIpAddress = m_NewIpAddress = m_IpAddress;
}
else
{
m_OldIpAddress = m_IpAddress = m_NewIpAddress;
}
//Start the connection with the PLC
m_Connection = new ModbusConnection(this,m_IpAddress);
inet = m_Connection.loginPLC();
在我的第二个活动中,我必须加载相同的数据并能够对其进行修改。我首先要做的是登录 SharedPreferencesFile:
dataPLC = getSharedPreferences("CFTPreferences",CONTEXT_IGNORE_SECURITY);
dataEditorPLC = dataPLC.edit();
然后我用一个按钮的点击动作来写:
public void setIPAddress()
{
if (!newIpAddress.equals(etIPAddress.getText().toString()))
{
dataEditorPLC.putString("oldIpAdd",ipAddress.toString());
dataEditorPLC.putString("newIpAdd",etIPAddress.getText().toString());
dataEditorPLC.commit();
}
}
我不知道我是否在两次调用同一个文件时做错了,或者我是否需要做一些额外的事情来修复它。看起来它进行了更新,但它没有刷新 MainActivity。如果有人遇到同样的问题,我将不胜感激!!!!
提前谢谢了!!!