在一项活动中,我有2个按钮,这些按钮可以从数据库中获取文本。我有一个问题,首先我设置第一个按钮文本,然后单击其他按钮,然后转到另一个活动从数据库中选择我的文本,但当我回到上一个活动时,第一个按钮文本为空。 我尝试使用Intent并将其传递给另一个活动然后检索它但它没有帮助!
如果您之前测试过,您有什么看法?
最好的问候
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"));
答案 0 :(得分: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","");
}
}
}
在Activity中,检索数据后,您可以执行以下操作:
Intent resultIntent = new Intent();
resultIntent.putExtra("STRING_NAME",retrived_value);
setResult(RESULT_OK,resultIntent );
finish();
答案 1 :(得分: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的Final和我传递给第二个活动的FinalIncomeTitle
intent.putExtra("FinalIncomeTitle",getIntent().getStringExtra("IncomeTitle"));
intent.putExtra("temp",1);