2017-12-06 10 views
0

子アクティビティでEditTextに詳細を入力した後、親アクティビティに戻り、子アクティビティに戻ると、EditText値が空になります。私は以下のコードを使用していますが、使用しません。子アクティビティのデータをアンドロイドスタジオに保存できません

以下は、childactivity.javaの詳細です。

誰でもこれを助けることができます。あなたは、他からの新しいインスタンスを、このアクティビティを起動する次の時間が作成され、古いデータは失われますので、あなたはそれがnullになるだろう何かにtypedTextを設定している場合でも、活性を破壊

import android.app.Activity; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.EditText; 
import android.widget.TextView; 

public class NotesActivity extends AppCompatActivity { 
    String typedText; 
    EditText inputTxt; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_notes); 
     inputTxt = (EditText) findViewById(R.id.notes1); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
     typedText = inputTxt.getText().toString(); 
    } 


    @Override 
    protected void onResume() { 
     super.onResume(); 
     inputTxt.setText(typedText); 
    }    
} 

答えて

0

。 永続ストレージオプションを使用してデータを保存する必要があります。 https://developer.android.com/guide/topics/data/data-storage.html

SharedPreferencesにデータを保存するには、次のコードを変更します。

private final String PREFS_NAME = "packageName"; 

SharedPreferences sharedPref = getSharedPreferences(PREFS_NAME, 0); 
SharedPreferences.Editor editor = sharedPref.edit(); 
editor.putString("typedText", inputTxt.getText().toString()); 
editor.commit(); 

また、次のように値を取得することもできます。親で

SharedPreferences sharedPref = getSharedPreferences(PREFS_NAME, 0); 
String typedValue = sharedPref.getString("typedText", "defaultValue/null"); 
+0

親愛なるランジャンを返す関数下の子アクティビティの使用では

@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { Bundle extras = data.getExtras(); String typedText = "" + extras.getString("TypedText"); } } 

、あなたは上記の詳細を述べたの完全なコードを得るために私を助けてくださいすることができます。私はあなたにとても感謝しています。 –

+0

どの永続ストレージオプションを使用するかは、保存するデータの種類によって異なります。記事を読んで、それぞれの利点を読んでください。いくつかの値だけを保存する場合は、 'SharedPreferences'を使うことができます。 – Ranjan

+0

子アクティビティには、複数の行を持つ1つのEditTextオブジェクトがあります。ノートのようです。完全なコードを提案してください。 –

0

NotesActivityある子アクティビティを呼び出すためにstartActivityForResult(getApplicationContext()、NotesActivity.class)を呼び出します。 「typedText」

private void returnText() { 
    Intent result = new Intent(); 
    String typedText = inputTxt.getText().toString(); 
    result.putExtra("TypedText", typedText); 
    setResult(RESULT_OK, result); 
} 


@Override 
protected void onPause() { 
    super.onPause(); 
    returnText(); 
} 
関連する問題