2016-11-02 7 views
0

私の問題は、同じアクティビティを再度開いたときにその値を取得するために、ファイルのアクティビティからEditTextの値を保存する必要があるということです。 私はすでにいくつかのフォーラムを中心に検索し、私は見つけることができるすべては、私はまだ..私はこのような何かを探していたAndroid - アクティビティの値をJavaクラスに保存する方法

EDIT

のAndroidを勉強 に関する意向である: このクラスは、変数を持っています。

パブリッククラスSharedActivity {

パブリック静的文字列convite。

}

活動1では、私はこれを行う:

SharedActivity.convite=EditText value; 

アクティビティ2で、私はのEditTextにSharedActivity.convite変数から値を取得しますが、私が得る値は、任意のアイデアnullです? ありがとう!

+0

はあなたのプログラムを添付してくださいすることができますことを保存するために、書き込み用のJava OutputStreamを使用してファイルを作成し、InputStreamクラスができ –

+0

使用して環境設定を共有したりSQLiteデータベース。バックエンドの使用を除外している場合に、アプリケーションが閉じられた後に保存されたデータを復元するオプションです。 – portfoliobuilder

答えて

0

活動が停止したときは、この

SharedPreferences data = getSharedPreferences(PREFS_NAME, 0); 
     SharedPreferences.Editor editor = data.edit(); 
     editor.putString("edit_text_data", editText.getText().toString()); 
     editor.commit(); 

そして、あなたはあなたのアクティビティ(開始)を復元するとき、あなたはこのようなデータを取得することができますように(onStopメソッドをオーバーライド)SharedPreferencesにデータを置くことができます。

SharedPreferences data = getSharedPreferences(PREFS_NAME, 0); 
     String editData = data.getString("edit_text_data", "none"); 
//The second parameter is default value if it doesnt find that tag. 
+0

2つのアクティビティでこれを行うと、それらは同じSharedPreferencesに格納されますか?または、これはそれぞれの活動そのもののために働くでしょうか? – Ko0kiE

+0

保存する "データ"ごとに、別のタグを使用します。 (単に "edit_text_data"だけではない) – w00d3nl3g

+0

"SharedPreferences"はあなたのアプリ全体のものですが、そこにはさまざまなタイプの変数を保存することができます。格納された各アイテムには独自のタグがあります。 – w00d3nl3g

2

たぶんSharedPreferencesは、あなたが任意のイベントハンドラメソッドなどの内部でこのスニペットを入れ

探しているものですButtonさんOnClickListener

//creating an instance of a shared preference with code 'edit_text_code' and only reachable by this application 
SharedPreferences mySharedPrefs=getSharedPreferences("my_shared_prefs_file_name",MODE_PRIVATE); 
//getting the mySharedPrefs's editor for further editing 
SharedPreferences.Editor editor=settings.edit(); 
//putting the EditText content as a shared preference to be 'commited' 
editor.putString("edit_text_code",myEditText.getText().toString()); 
editor.commit(); 

そして今、あなたは、この場合の 『共有好み』と内部の好みを、読んでください、あなたのEditText内容:

例えば

public class MainActivity2 extends AppCompatActivity { 
TextView myTextView; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main2); 
     myTextView = (TextView) findViewById(R.id.my_text_view); 
     SharedPreferences mySharedPrefs = getSharedPreferences("my_shared_prefs_file_name",MODE_PRIVATE); 
     String content = mySharedPrefs.getString("edit_text_code","Show this text in case that shared preference doesn't exist"); 
     textView.setText("The EditText content was: "+ content); 
    } 

他のトピックの詳細については、このブログをチェックアウト: http://www.vogella.com/tutorials/AndroidFileBasedPersistence/article.html

もAndroidの開発については、このChalkSreetのアプリを試してみてください。 https://play.google.com/store/apps/details?id=com.chalkstreet.learnandroid&hl=en あり、あなたの質問

App screen capture 1

App screen capture 2

に非常によく似たものを含め、興味深い例を見つけることができます編集

ここで私が話していた例のソースがあり、それはうまくいくはずです。

public class SharedActivity extends AppCompatActivity { 
    EditText et; 

    @Override 
    protected void onCreate(@Nullable Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.layout_activity_shared); 
     et = (EditText) findViewById(R.id.edit_text_shared); 
     SharedPreferences settings = getSharedPreferences("PREFS",MODE_PRIVATE); 
     et.setText(settings.getString("option","")); 
    } 

    //This does the trick  
    @Override 
    protected void onStop() { 
     super.onStop(); 
     SharedPreferences settings = getSharedPreferences("PREFS",0); 
     SharedPreferences.Editor editor = settings.edit(); 
     editor.putString("option",et.getText().toString()); 
     editor.commit(); 
    } 
} 

OR あなたは私はあなたを助けることができるように、「変数」

+0

こんにちは、お返事ありがとうございますが、これは私が探しているようなものです:http://stackoverflow.com/questions/14829093/pass-variable-between-non-activity-class-to-android-activity -class、残念ながら、私がアクティビティを変更すると、そのクラスの変数の値が消えてしまいます。それを手伝ってもらえますか? – Ko0kiE

+0

あなたの質問についてはアプリに例がありますが、私は答えを編集しています –

+0

ファイルストリームクラスを使うのは解決策だと思いますか? –

関連する問題