2015-02-17 42 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

相关问题