2011-03-15 77 views
1

在我的应用程序中,我有两个活动OpenAccount和BillAccount。在按钮上单击OpenAccount我们正在导航到BillAccount。从BillAccount acticity再次回到之前的活动OpenAccount。在这里导航回来我想在OpenAccount中的一些变量值。 我试图通过从另一页获取值

intent.putExtra("trnxnId", trnxnId) 

和OpenAccount

intent.getExtras().getString("trnxnId"); 

得到的值,但它自那时以来,OpenAccount的第一负载送礼者错误它没有意图这个变量的值。

请帮助我们如何在这种情况下获得值?

+0

[BillAccount Activity-- intent.putExtra(“trnxnId”,trnxnId);]&[OpenAcount Activity - Intent.getExtras()。getString(“trnxnId”);],但在加载OpenAccount时,它找不到“trnxnId”的值,这里给出错误。 – 2011-03-15 07:20:24

+0

可以ü发表您的完整代码 – 2011-03-15 13:03:27

回答

0
getIntent().getStringExtra("trnxnId").equals(null) ? "" : getIntent().getStringExtra("trnxnId"); 

尝试使用上面的方法,它处理没有返回值时的情况。

+0

谢谢tushar,我试过使用这个,但活动OpenAccount本身来自一个意图行动,在这里第一个活动OpenAccount仍然getIntent它是投掷NullPointerExcepetion。 – 2011-03-15 07:51:54

1

你能做到这样:

Bundle bundle=new Bundle(); 
bundle.putString("trnxnID",trnxnID); 
it.putExtras(bundle); 

而且你可以得到它:

it.getExtras().getString("trnxnID"); 
+0

感谢sunil,我试着用这个,但是活动OpenAccount本身来自一个Intent动作,在这里第一个活动OpenAccount仍然在getIntent上,它抛出了NullPointerExcepetion。 – 2011-03-15 07:48:32

+0

PLZ接受,如果它回答你的问题 – 2011-03-15 07:50:03

0

我想你应该尝试使用startActivityForResult如果你不这么做了。

在OpenAccount活动:

你从哪儿OpenAccount启动BillAccount:

int requestCode = 1; 
Intent intent = new Intent(this, BillAccount.class); 
startActivityForResult(intent, requestCode); 

实现OpenAccount这个方法:

@Override 
protected void onActivityResult (int requestCode, int resultCode, Intent data) { 
    if(resultCode == RESULT_OK) { 
    data.getStringExtra("trnxnId"); 
    } 
} 

在BillAccount之前完成它:

Intent intent = new Intent(); 
intent.putExtra("trnxnID", trnxnID); 
setResult(RESULT_OK, intent);