2017-07-04 15 views
-2

我已經創建了下面的示例代碼來解釋我自己。我有一些EditText字段需要將數據存儲爲「條目」以供以後使用。我的問題是,將這三個變量存儲在另一個活動中「列出」的最佳方式是什麼? (liAmount,liAccount和vID)。我只是要使用共享偏好,但即使有這樣的,我會在同一EditTexts多個條目,所以我真的不知道如何正確序列化他們...將EditText數據存儲到稍後要訪問的文件/地點的最佳方法是什麼?

float liAmount; 
String liAccount; 
String vID; 

btnSaveLineItem.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 

     if(etLineItemAmount.length() == 0 || etAccountName.length() == 0) { 
      Toast.makeText(NewLineActivity.this, "Fill all fields.", Toast.LENGTH_LONG).show(); 
     } else { 
      saveLineItem(); 
      createVID(); 
     } 

    } 
}); 

public void createVID(){ 
    vID = String.valueOf(liAccount.charAt(0) + liAccount.charAt(1) + liAccount.charAt(2) + liAmount); 
} 

public void saveLineItem(){ 
    liAmount = Float.valueOf(etLineItemAmount.getText().toString()); 
    liAccount = etAccountName.getText().toString(); 
} 

編輯:我要澄清,我確實希望這些數據文件能夠長期存儲。這些實質上將被用於單獨的活動文件中以顯示所有以前的條目的列表。

+1

可能的複製(https://stackoverflow.com/questions/7057845/save-arraylist-to-共享首選項) –

+0

僅供參考 - 它不是最好的方法,因爲沒有最佳*評級。每個人都用他喜歡的東西。這被稱爲*基於意見的*,它在stackoverflow上是主題 –

回答

0

您可以使用您的應用程序類,暫時存儲數據。如果你想存儲只是一個字符串或HashMap的列表來存儲值作爲鍵值對申報ArrayList。與此類似,在您的自定義應用程序類聲明

private ArrayList<String> temp; 

public ArrayList<String> getTemp() { 
    return temp; 
} 

public void setTemp(ArrayList<String> temp) { 
    this.temp = temp; 
} 

然後在任何活動的呼叫((YourApplication)getActivity()).getTemp()並從中添加或獲取數據。

1

您可以使用SharedPreferences將數據存儲與一個鍵值對,然後以後需要時檢索相同。這是一個示例代碼。

Editor editor = sharedpreferences.edit(); 
editor.putString("key", "value"); 
editor.commit(); 

至獲取儲值使用類似的[保存到ArrayList中SharedPreferences]這個

SharedPreferences prefs = getSharedPreferences(this); 
String restoredText = prefs.getString("key", null); 
相關問題