2013-03-13 76 views
1

我有一個代碼列表,其中的項目是對某事的引用並且有一個地址。我需要這樣做,當點擊該列表中的任何項目時,則應該啓動Google Maps導航對應於rowitem的地址。順便說一句,地址在行內不可見,地址是從中獲取行信息的對象。我試過的代碼: -無法將意圖添加到ArrayAdapter中的Google地圖

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? 

任何人都可以幫助我這個。提前致謝。

+1

你有沒有想過在意圖添加FLAG_ACTIVITY_NEW_TASK標誌? – 2013-03-13 05:12:13

+0

是的,我做了,然後它被標記爲錯誤。 – daemon54 2013-03-13 05:14:32

+0

添加FLAG_ACTIVITY_NEW_TASK標誌時出現哪個錯誤? – 2013-03-13 05:15:05

回答

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); 
+0

這是行得通的。謝謝。 – daemon54 2013-03-13 05:26:25

1

構造意圖(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); 
0

我不知道是什麼情況下在變量 「背景」。

如果你的代碼包含的,而不是「背景」的活動中,嘗試

ActivityClass.this.startActivity(意向);

相關問題