2017-05-31 4 views
-2

私は5つほどのアクティビティを持つアプリを持っています。最後に、ボタンのクリックと入力値から来る値で数式を埋めたいと思っています。値をボタンで保存複数のアクティビティをクリック

どうすればいいですか?事前

+1

一つの共通の場所に値を格納します。あなたは 'SharedPreferences'を使うことも、' Application'の独自のサブクラスを作ることも、シングルトンオブジェクトを作ることもできます。@ user8090482 –

答えて

0

ThxをあなたはShared Preferencesの上に行くことができますが、あなただけがキーと値のペアを保存することができます。このソリューションは永続的で、デバイスにデータを保存します。

私が見る/読むことができる限り、 "DataHolder"という名前の静的なクラスを作成する必要があります。そこでは、各アクティビティから値を設定して取得します。この解決策はではなく、であり、実行時にのみデータを保存します。

+0

キー値が何であるかは分かりません。だから私は基本的に持っています。 3つの編集ボックスで1つのアクティビティに値を入力します。次に、下のボタンをクリックすると、これらの値をどこかに保存したいので、アプリケーションの最後に数式で使用できます。 – Dimi

+0

[HashMap](http://beginnersbook.com/2013/12/hashmap -in-java-with-example /)は、キー値のペアの例です。基本的に、一意のキーで値をマッピングします。キーを要求して値を取得します。編集:これは、アクティビティ間でデータを共有するように思えます。これは一般的な問題であり、さまざまなアプローチの* lots *を持っています(上記のアプリケーションのようなシングルトンオブジェクト) – user8090482

0

値を保存するために共有設定を使用することができます。次に、役立つサンプルコードを示します。 以下のような値を格納する1つの共通クラスを作成します。

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

ありがとうございます。私は本当に最初の部分を理解していない。だから、私はそれを行う、特定の値/変数が保存されているボタンをクリックしますか?または、edittextの値がどのように保存されるのか。 – Dimi

+0

私はすでにlook.Youはあなたがpreferences.setPhone(Edittext.getText()。toString)で値を保存し、preferences.getPhone()メソッドでその値を取得することができます。 –

関連する問題