2015-02-17 43 views
0

我想要能夠啓動一個啓動Google地圖應用程序的按鈕,但是我似乎無法真正實現它的功能,我可以獲得一些幫助嗎?真的很抱歉,如果這似乎很容易,我還是與Android是一個新手,下面是我用relavent意圖從我的Android應用程序打開谷歌地圖

public class MainActivity extends ActionBarActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    getSupportActionBar().setIcon(R.drawable.ic_action_headphones); 
    getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE); 
    Button mapsbtn = (Button) findViewById(R.id.mapbtn); 

    mapsbtn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      String uri = String.format(Locale.ENGLISH, "geo:%f,%f"); 
      Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); 
      startActivity(intent); 
     } 
    }); 

} 

我的應用程序保持在按下按鈕崩潰onCreate方法,而我收到的錯誤是

E/AndroidRuntime:致命異常:主 工藝:juddsafc.actionbarexample,PID:2980 java.util.MissingFormatArgumentException:格式說明:F

謝謝提前!

回答

1

當你把%f,%f你需要事後提供的值。所以改變這種:

String uri = String.format(Locale.ENGLISH, "geo:%f,%f"); 

這樣:

String uri = String.format(Locale.ENGLISH, "geo:%f,%f", 35.6833, -139.7667); // numbers are just some random coordinates 
+0

哦拍!不能相信我錯過了:(非常感謝你! – aluckii 2015-02-17 21:52:24

0
String uri = String.format(Locale.ENGLISH, "geo:%f,%f"); 

的%f是一個格式化。你的程序需要一個值來代替%f,但是你的函數沒有足夠的參數來完成這個。

你可以做到以下幾點:

String uri = String.format(Locale.ENGLISH, "geo:%f,%f", 100, 200); 

而是採用100和200,你沿着你想要顯示的值傳遞。

+0

非常感謝你的回答!:),我不能相信我犯了那個錯誤:( – aluckii 2015-02-17 21:53:09

相關問題