1

我有一个代码列表,其中的项目是对某物的引用并有一个地址。我需要这样做,以便当单击该列表的任何项目时,应该启动与 rowitem 的地址相对应的 Google Maps Navigation。顺便说一句,地址在行中不可见,地址是从中获取行信息的对象。我已经尝试了代码:-

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

我不知道变量“上下文”中的上下文是什么。

如果您的代码包含在活动中,而不是“上下文”尝试

ActivityClass.this.startActivity(intent);

于 2013-03-13T05:26:20.170 回答