2017-05-31 26 views
-2

我有一個應用程序5個左右的活動。最後,我想要一個公式由來自按鈕點擊和輸入值的值填充。按鈕點擊多個活動保存價值

任何想法如何做到這一點?提前

+1

商店在一個共同的地方值。你可以使用'SharedPreferences',創建你自己的'Application'的子類,或者創建一個單例對象,就像@ user8090482 –

回答

0

THX你可以走了過來Shared Preferences,但你只能保存鍵 - 值對那裏。該解決方案是持久性的,並將數據保存在您的設備上。

據我所看到/閱讀,你應該做一個名爲「DataHolder」或類似的東西,你設置和獲取每個活動的值的靜態類。此解決方案是而不是持久性,並且僅在運行時保存數據。

+0

所提到的那樣。我不知道鍵值是什麼。所以我基本上有一個有3個Editbox的活動可以輸入一個值。然後,當點擊下面的按鈕時,我希望這些值存儲在某個地方,所以我可以在公式的應用程序末尾使用它們 – Dimi

+0

A [HashMap](http://beginnersbook.com/2013/12/hashmap -in-java-with-example /)是鍵值對的一個例子。基本上你用一個唯一的鍵映射一個值。然後通過請求密鑰來獲取價值。編輯:這聽起來像你想分享活動之間的數據。你應該在你最喜歡的搜索引擎中查看它,因爲它是一個常見的問題,並且有很多不同的方法(如提到的應用程序|單例對象) – user8090482

0

您可以使用共享首選項來存儲該值,下面是將幫助您的示例代碼。 使一個公共類存儲下面的值。下面

Preferences.java

public class Preferences{ 

    private Context context; 

    public Preferences(Context context) { 
     this.context = context; 
    } 

    // make getter setter like below as per your requirement 

      public void setPhone(String phone) { 
      SharedPreferences preferences = context.getSharedPreferences("preferences", Context.MODE_PRIVATE); 
      SharedPreferences.Editor editor = preferences.edit(); 
      editor.putString("phone", phone); 
      editor.apply(); 
     } 

     public String getPhone(){ 
      SharedPreferences preferences = context.getSharedPreferences("preferences", Context.MODE_PRIVATE); 
      return preferences.getString("phone",null); 
     } 

     } 

是您的MainActivity類別。

MainActivity.java

public class MainActivity extends AppCompatActivity{ 

    private Preferences preferences; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 

      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_login); 
      init(); 
     } 

    private void init(){ 

    preferences = new Preferences(MainActivity.this); 

// for example you have three editbox then store each value like below,write below code in onClick(0 of your button 

    preferences.setPhone(Edittext.getText().toString); 

// and write below code wherever you want to get values 
    preferences.getPhone(); 
} 
    } 
+0

非常感謝你,但是有一個問題。我真的不明白第一部分。那麼我該如何做,在buttonclick上保存一個特定的值/變量?或者,也許edittext的值被保存。 – Dimi

+0

我已經提到過看看。您可以通過preferences.setPhone(Edittext.getText()。toString)保存值,並通過preferences.getPhone()方法獲取該值。 –