我希望能够有一个可以启动Google地图应用的按钮,但是我似乎无法让它工作,我可以帮忙吗?真的很抱歉,如果这看起来很容易,我仍然是一个新手用android,下面是我的oncreate方法与相关意图
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);
}
});
}
我的应用程序在按下按钮时不断崩溃,我收到的错误是
E / AndroidRuntime:致命异常:主要 过程:juddsafc.actionbarexample,PID:2980 java.util.MissingFormatArgumentException:格式说明符:f
提前致谢!
答案 0 :(得分: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
答案 1 :(得分: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,而是传递要显示的值。