4
我正在为Android创建基于GPS的应用程序,并且有2个活动Main和LocNames。 Main显示我的地图,LocNames是获取用户想要的源和目的地。当用户从菜单中选择它时,我想启动LocNames,用户在框中输入名称,并且希望结果被发送回Main。但我这样做的例外。Android:使用意图来回传递数据setResults
这里是我的主要是如何调用LocNames:
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.showMyLocation:
showCurrentLocation();
break;
case R.id.showRoute:
Intent getLocationsIntent = new Intent(Main.this, LocNames.class);
startActivityForResult(getLocationsIntent, 1);
break;
}
下面是我想设置导致的onClick LocNames的:
public void onClick(View v)
{
// TODO Auto-generated method stub
source = sourceText.getText().toString();
destination = destinationText.getText().toString();
Intent result = new Intent(LocNames.this, Main.class);
result.putExtra("src", source);
result.putExtra("dest", destination);
setResult(RESULT_OK, result);
}
但是当我尝试使用结果我的应用程序崩溃通过LocNames
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if(requestCode == 1 && resultCode == RESULT_OK)
{
source = data.getStringExtra("src");
destination = data.getStringExtra("destination");
}
}
我有没有现成的经验,使用setResults但确实返回cumentation说它需要一个int和一个intent作为参数,所以我创建了这个意图,但是我在LocNames的OnClick中得到了NullPointerException。
Regards
谢谢您的回复更换
。但是,我将如何捕获结果变量源和目的地。我在OnClick中设置了正确的方式吗? – Yogesh 2012-04-15 00:41:52
正如我可以看到你从'EditText'中捕获它们......你是什么意思?试试吧。你的代码看起来没问题,所以它应该可以工作(除了你在'onCreate'中创建'Intent'的行,如答案中所述) – 207 2012-04-15 00:51:53
谢谢。发现这个bug,我应该使用这个语法来获取返回值:source = data.getExtras()。getString(“src”); \t \t \t destination = data.getExtras()。getString(“dest”); – Yogesh 2012-04-15 00:54:54