在我回到父活动并返回到子活动后,在子活动的EditText中输入详细信息后,EditText值变为空白。我使用了下面提到的代码,但没有用。
下面提到的是childactivity.java详细信息。
任何人都可以提供帮助。
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 :(得分:0)
即使您将val jmsSource: Source[Message, NotUsed] = JmsSource(
JmsSourceSettings(connectionFactory)
.withQueue("myqueue")
.withAcknowledgeMode(AcknowledgeMode.ClientAcknowledge)
)
val result = jmsSource
.map {
case textMessage: TextMessage =>
val text = textMessage.getText
textMessage.acknowledge()
text
}
.runWith(Sink.seq)
设置为typedText
也会导致活动失败,因为下次从其他活动启动此活动时,将创建一个新实例,旧数据将会丢失。
您必须使用持久存储选项存储数据。
https://developer.android.com/guide/topics/data/data-storage.html
要在SharedPreferences中存储数据,您可以修改以下代码。
null
要检索您可以执行以下操作的值。
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();
答案 1 :(得分:0)
在父调用startActivityForResult(getApplicationContext(),NotesActivity.class)中调用子活动,即NotesActivity。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
String typedText = "" + extras.getString("TypedText");
}
}
在Child活动中使用以下函数返回'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();
}