0

ボタンを押した後に表示される文字列を作成するために、今日ここでいくつかの助けを得ました。

public void addListenerOnButton() {

    button1 = (Button) findViewById(R.id.buttoncalculate);
    button1.setOnClickListener(new View.OnClickListener() {

    public void onClick(View view) {

            EditText editText = (EditText)findViewById(R.id.editText1);
            String text = editText.getText().toString();

             Intent myIntent = new Intent(view.getContext(),Calculated.class);
             myIntent.putExtra("mytext",text);
             startActivity(myIntent);

        }
    });

そして、それは次のように表示されます:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    setContentView(R.layout.calculated);

       mTextview = (TextView)findViewById(R.id.textView1);

       mTextview.setText(getIntent().getStringExtra("mytext"));
}

しかし、それは一時的なものであることに気付きました。アプリを離れるか、他のアクティビティに移動するとすぐに、文字列がリセットされます..

私の質問は、ローカル文字列を実際の文字列に保存して、他のアクティビティに表示したり、アプリを閉じた後でも表示したりするにはどうすればよいですか?

それはstrings.xmlのものですか?

ありがとう

4

2 に答える 2

1

それはstrings.xmlのものですか?

いいえ - これは読み取り専用で、コンパイル中に使用されます。

ローカル文字列を実際の文字列に保存して、他のアクティビティに表示したり、アプリを閉じた後でも表示したりするにはどうすればよいですか?

あなたが話しているのは永続的なストレージです。主なオプションは 3 つあります (他にもありますが、これは非常に広範なトピックであるため、簡単に説明します)。

ファイルに保存する

文字列をファイルに保存し、アプリの起動時または必要な場所にロードします。

テキストファイルの読み取り/書き込みに関するこのSO投稿を参照してくださいAndroid書き込みファイル

SharedPreferences を使用する

このアンドロイドの読み取り/書き込みユーザー設定のコードを表示するSO投稿

おそらく、単純な文字列を格納し、コーディングしやすいための最良の答えです。アクティビティを開始し、インテントが渡されない場合は、SharedPreferencesから文字列をロードできます。

mTextview.setText(getIntent().getStringExtra("mytext"));

になる

final String myString = getSharedPreferences("PREF_NAME", Context.MODE_PRIVATE).getString("SOME_STRING", "Default if not found");

mTextview.setText(myString);

上記は純粋にデモンストレーションのためのものであり、おそらく自分のニーズに合わせて整理および改良する必要があります。

データベースを使用する

おそらくあなたにとって最悪の選択肢ですが、検討する価値があります。複数の文字列または複雑なオプションを使用し始めると、SQLite が Android に組み込まれます。

優れたチュートリアルがここにあります http://www.vogella.com/articles/AndroidSQLite/article.html

于 2013-02-24T17:37:19.933 に答える
0

Shared Preferences私は価値を保存するために使用することを好みます。

MainActivity.java

public void addListenerOnButton() {

    button1 = (Button) findViewById(R.id.buttoncalculate);
    button1.setOnClickListener(new View.OnClickListener() {

    public void onClick(View view) {

            EditText editText = (EditText)findViewById(R.id.editText1);
            String text = editText.getText().toString();

            SharedPreferences sp = getSharedPreferences("MyPrefs", MODE_PRIVATE);

            Editor editor = sp.edit();
            editor.putString("mytext", text);
            editor.commit();


             Intent myIntent = new Intent(view.getContext(),Calculated.class);
             startActivity(myIntent);

        }
    });

計算された.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    setContentView(R.layout.calculated);

       mTextview = (TextView)findViewById(R.id.textView1);

       mTextview.setText(getSharedPreferences("MyPrefs", MODE_PRIVATE).getString("mytext",null););
}
于 2013-02-24T17:44:24.683 に答える