Android: passing data back and forth using intent

2019-09-16 13:24发布

我创建的Android基于GPS的应用程序,并有2个主要活动和LocNames。 主要展示我的地图和LocNames是获得源和用户想要的目的地。 我要开始LocNames当用户从菜单中选择它,用户在输入框的名字,我想结果被发送回主。 但我这样做让例外。

这是我的主要是如何调用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;
    }

这里是我正在尝试在LocNames的的onClick设置的结果:

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没有现成的经验,但文件说,它需要一个int和意图作为参数,所以我创造了这一意图,但我在LocNames的的OnClick得到NullPointerException异常。

问候

Answer 1:

你并不需要一个特定组成部分的意图。 你只需要一个空的意图。 所以更换

Intent result = new Intent(LocNames.this, Main.class);

Intent intent = new Intent();


文章来源: Android: passing data back and forth using intent setResults