2014-10-28 41 views
0

在一個活動中,我有2個按鈕,那些從數據庫中獲取文本的按鈕。我遇到了問題,首先我設置了第一個按鈕文本,然後點擊其他按鈕,然後轉到其他活動以從數據庫中選擇我的文本,但是當我回到上一個活動時,第一個按鈕文本爲空。 我用Intent嘗試它,並將它傳遞給另一個活動,然後檢索它,但它沒有幫助!如何在一個Activity中保存一個字符串將其傳遞給另一個Activity,然後返回到第一個活動?

如果您之前測試過,您認爲什麼?

問候

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

回答

1

我認爲更好的方式來實現這一目標是使用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(); 
0

我解決我的問題只是一個條件:

 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和FinalIncomeTitle,當我想回到之前的活動時,我傳遞給第二個活動

    intent.putExtra("FinalIncomeTitle",getIntent().getStringExtra("IncomeTitle")); 
       intent.putExtra("temp",1); 
相關問題