おはようございます。
最初のアプリを作成するプロセスで再び問題が発生しました。今回は SharedPreferences ファイルを使用します。
同じ SharedPreferences ファイルを使用する必要がある 2 つのアクティビティがあります。1 つ目は MainActivity で、2 つ目はデータの編集レイアウトです。
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();
2 番目のアクティビティでは、同じデータをロードして変更できるようにする必要があります。最初に行うことは、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();
}
}
同じファイルを2回呼び出すのが間違っているのか、それともこれを修正するために何か特別なことをしなければならないのか、私にはわかりません。更新はしているように見えますが、MainActivity は更新されません。誰かが同じ問題を抱えていたら、これについて助けていただければ幸いです!!!.
よろしくお願いします!!!