这是我的java文件。代码是简单的谷歌地图,我想将名称传递给按钮,应该在地图上搜索。但我的价值是没有传递给按钮。获取错误在谷歌地图代码中出现空指针异常,同时将editext值传递给buttton。我无法理解编码中出现的问题。我是否错误地在标记中添加了tittle值或者给出了错误的editext值任何人都可以建议如何在标记或按钮中将editext值传递给我的tittle。
package com.example.test2;
import com.google.android.gms.drive.internal.f;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1=(Button)findViewById(R.id.google_map);
final EditText edt_text=(EditText)findViewById(R.id.edt1);
// setText();
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
GoogleMap map;
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
map.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
LatLng latLng = new LatLng(13.05241, 80.25082);
map.addMarker(new MarkerOptions().position(latLng).title(edt_text.getText().toString()));
}
});
}
}
logcat的:
08-21 03:24:08.340: E/AndroidRuntime(1241): FATAL EXCEPTION: main
08-21 03:24:08.340: E/AndroidRuntime(1241): java.lang.NullPointerException
08-21 03:24:08.340: E/AndroidRuntime(1241): at com.example.test2.MainActivity$1.onClick(MainActivity.java:42)
08-21 03:24:08.340: E/AndroidRuntime(1241): at android.view.View.performClick(View.java:4240)
08-21 03:24:08.340: E/AndroidRuntime(1241): at android.view.View$PerformClick.run(View.java:17721)
08-21 03:24:08.340: E/AndroidRuntime(1241): at android.os.Handler.handleCallback(Handler.java:730)
08-21 03:24:08.340: E/AndroidRuntime(1241): at android.os.Handler.dispatchMessage(Handler.java:92)
08-21 03:24:08.340: E/AndroidRuntime(1241): at android.os.Looper.loop(Looper.java:137)
08-21 03:24:08.340: E/AndroidRuntime(1241): at android.app.ActivityThread.main(ActivityThread.java:5103)
08-21 03:24:08.340: E/AndroidRuntime(1241): at java.lang.reflect.Method.invokeNative(Native Method)
08-21 03:24:08.340: E/AndroidRuntime(1241): at java.lang.reflect.Method.invoke(Method.java:525)
答案 0 :(得分:1)
您的活动必须实施OnMapReadyCallback
界面。地图准备就绪后,添加onClickListener
Y会说您的代码失败了,因为当您致电getMap()
时,地图尚未加载
答案 1 :(得分:0)
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
GoogleMap map;
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
map.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
LatLng latLng = new LatLng(13.05241, 80.25082);
if(!(edt_text.getText().toString().trim().equals(""))
map.addMarker(new MarkerOptions().position(latLng).title(edt_text.getText().toString()));
}
});