Android 如何在一个活动中保存字符串并将其传递给另一个活动,然后使用该字符串返回到第一个活动?
在一个活动中,我有两个按钮,它们从数据库中获取文本。我对它们有一个问题,首先我设置第一个按钮文本,然后单击其他按钮并转到另一个活动以从数据库中选择我的文本,但当我返回到上一个活动时,第一个按钮文本为空。 我有目的地尝试它,并将其传递给另一个活动,然后检索它,但它没有帮助 如果你以前测试过,你的意见是什么 致意Android 如何在一个活动中保存字符串并将其传递给另一个活动,然后使用该字符串返回到第一个活动?,android,android-activity,Android,Android Activity,在一个活动中,我有两个按钮,它们从数据库中获取文本。我对它们有一个问题,首先我设置第一个按钮文本,然后单击其他按钮并转到另一个活动以从数据库中选择我的文本,但当我返回到上一个活动时,第一个按钮文本为空。 我有目的地尝试它,并将其传递给另一个活动,然后检索它,但它没有帮助 如果你以前测试过,你的意见是什么 致意 btnIncomeFrom= (Button) findViewById(R.id.btnDaryaftAz); btnIncomeFrom.setOnClickL
btnIncomeFrom= (Button) findViewById(R.id.btnDaryaftAz);
btnIncomeFrom.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(NewIncomeActivity.this, IncomeListActivity.class));
}
});
IncomeTitle = getIntent().getStringExtra("ThirdLevelIncome");
btnIncomeFrom.setText(IncomeTitle);
btnSettleTo= (Button) findViewById(R.id.btnVarizBe);
btnSettleTo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(NewIncomeActivity.this, SettleToListActivity.class);
//intent.putExtra("IncomeTitle",IncomeTitle);
startActivity(intent);
}
});
btnSettleTo.setText(getIntent().getStringExtra("ThirdLevelSettle"));
在我看来,实现这一点的更好方法是使用startActivityForResult()方法。例如:
final int JADID_ACTIVITY_RESCODE = 1;
@Override
public void onClick(View view) {
startActivityForResult(new Intent(DaryafteJadidActivity.this, IncomeListActivity.class),JADID_ACTIVITY_RESCODE);
}
/* invoked when started activity returns */
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
if (requestCode == JADID_ACTIVITY_RESCODE) {
if (resultCode == RESULT_OK) {
String retrived_data = data.getStringExtra("STRING_NAME","");
}
}
}
在“活动”中,检索数据后,您可以执行以下操作:
Intent resultIntent = new Intent();
resultIntent.putExtra("STRING_NAME",retrived_value);
setResult(RESULT_OK,resultIntent );
finish();
我解决问题的唯一条件是:
if(getIntent().getIntExtra("temp",0)== 1)
{
btnIncomeFrom.setText(getIntent().getStringExtra("FinalIncomeTitle"));
}
else
{
IncomeTitle = getIntent().getStringExtra("ThirdLevelIncome");
btnIncomeFrom.setText(IncomeTitle);
}
btnSettleTo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(NewIncomeActivity.this, SettleToListActivity.class);
intent.putExtra("IncomeTitle",IncomeTitle);
startActivity(intent);
}
});
我传递了值为1的temp和FinalIncomeTitle,当我想返回到前一个活动时,我传递给了第二个活动
intent.putExtra("FinalIncomeTitle",getIntent().getStringExtra("IncomeTitle"));
intent.putExtra("temp",1);