【发布时间】:2016-04-16 15:00:54
【问题描述】:
三个Activity代码下面有一个使用Intent传递数据的示例代码。
活动 A
public class A extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_A);
}
public void onButton1Clicked(View v) {
Intent intent = new Intent(getApplicationContext(), B.class);
startActivity(intent);
}
活动 B
public class B extends AppCompatActivity {
TextView tv;
ImageButton ib;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_B);
tv = (TextView) findViewById(R.id.textView);
ib = (ImageButton) findViewById(R.id.imageButton);
ib.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(B.this, C.class);
startActivityForResult(intent, 2);
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 2) {
if (data != null) {
String message = data.getStringExtra("DATA");
tv.setText(message);
}
}
}
public void onButton2Clicked(View v) {
Intent intent = new Intent(getApplicationContext(), C.class);
startActivity(intent);
}
活动 C
public class C extends AppCompatActivity {
EditText et;
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_C);
et = (EditText) findViewById(R.id.editText);
btn = (Button) findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String data = et.getText().toString();
Intent intent = new Intent();
intent.putExtra("DATA", data);
setResult(2, intent);
finish();
}
});
}
活动顺序是A - B - C。
A中有一个Button可以移动到B,B中有一个Button(可以移动到C)和TextView。在 C 中,一个 Button(可以再次移动到 B)和 EditText。
例如,使用“startActivityForResult”,我输出为 TextView(B),它接收到由 EditText 在 C 中输入的文本。但是在将 B 移动到 A(Back) 后,TextView 的插入在进入 B 时消失了再次。另外,即使进入C,也没有EditText的插入。
当按下 C 中的按钮时,我真的需要并且知道“保存代码”到变量中,方法是输入 EditText。
在这种情况下,我如何添加“代码”以保留插入值,或者通过退出应用程序保留插入值,或者移动到接收到 A 类数据的 Activity?
感谢您的合作和关心。
【问题讨论】:
标签: java android android-intent android-activity android-studio