4

私は 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 が発生します。

よろしく

4

1 に答える 1

7

特定のコンポーネントのインテントは必要ありません。空のインテントのみが必要です。だから交換する

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

Intent intent = new Intent();
于 2012-04-15T00:37:59.480 に答える