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);