私は Android 用の GPS ベースのアプリを作成しています。Main と LocNames の 2 つのアクティビティがあります。メインは私の地図を示し、LocNames はユーザーが望むソースと目的地を取得するためのものです。ユーザーがメニューから選択したときに LocNames を開始し、ユーザーがボックスに名前を入力し、結果をメインに送り返したい。しかし、そうすることで例外が発生しています。
Main が 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 が発生します。
よろしく