1

アイテムが何かへの参照であり、アドレスを持っているコードリストがあります。そのリストのいずれかのアイテムがクリックされたときに、行アイテムのアドレスに対応してGoogleMapsNavigationが起動されるようにする必要があります。ところで、アドレスは行内に表示されません。アドレスは、行情報が取得されるオブジェクトです。私はコードを試しました:-

rowview.setOnClickListener(new View.OnClickListener() 
    {
        public void onClick(View v) 
        {
            //Intent intent = new Intent(context,);
            //Toast.makeText(context, "Yeah Boy", Toast.LENGTH_SHORT).show();
            LatLng tmp = objects.get(position).location;
            String uri = "http://maps.google.com/maps?saddr=" + location.getLatitude()+","+location.getLongitude()+"&daddr="+tmp.latitude+","+tmp.longitude;  
            Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(uri));
            intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
            context.startActivity(intent);
        }
    });
    return rowview;

しかし、それは機能していないようです。このエラーが発生しています:-

android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?

誰かがこれで私を助けることができますか?前もって感謝します。

4

3 に答える 3

1

コンストラクターIntent(int、Uri)は未定義です

setFlagメソッドを使用してフラグを設定します。

Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(uri));
intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
intent.setFlag(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
于 2013-03-13T05:19:01.917 に答える
1

として試してみてください:

Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
String uri = "Your URI String ";
intent.setData(Uri.parse(uri));
intent.setClassName("com.google.android.apps.maps", 
                 "com.google.android.maps.MapsActivity");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
于 2013-03-13T05:19:29.827 に答える
0

変数「context」にどのコンテキストがあるのか​​わかりません。

コードがアクティビティ内に含まれている場合は、「コンテキスト」ではなく、

ActivityClass.this.startActivity(intent);

于 2013-03-13T05:26:20.170 に答える