Java 当微调器中的值更改时,贴图位置也会更改
所以我有一个活动,让用户从微调器中选择一个位置。当用户选择一个时,贴图(微调器下的片段)将把相机移动到特定的目的地。我有这个代码,但我似乎无法使它工作。任何帮助都将不胜感激 TerminalAllocationsActivity.javaJava 当微调器中的值更改时,贴图位置也会更改,java,android,Java,Android,所以我有一个活动,让用户从微调器中选择一个位置。当用户选择一个时,贴图(微调器下的片段)将把相机移动到特定的目的地。我有这个代码,但我似乎无法使它工作。任何帮助都将不胜感激 TerminalAllocationsActivity.java public class TerminalLocationsActivity extends AppCompatActivity implements OnMapReadyCallback, OnItemSelectedListener { Spinner
public class TerminalLocationsActivity extends AppCompatActivity implements OnMapReadyCallback, OnItemSelectedListener {
Spinner spinner;
GoogleMap mMap, mMap2, mMap3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_terminal_locations);
SupportMapFragment mapFragment =
(SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.terminalList, R.layout.spinner_layout);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
Context context = getApplicationContext();
CharSequence text = "Tap box to change terminal.";
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(context, text, duration);
toast.setGravity(Gravity.CENTER_VERTICAL| Gravity.CENTER, 0,0);
toast.show();
}
@Override
public void onMapReady(GoogleMap map) {
map.addMarker(new MarkerOptions().position(new LatLng(10.699160,122.547208)).title("San Pedro Molo Terminal"));
map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(10.699160, 122.547208), 16));
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String spinSelection = spinner.getSelectedItem().toString();
if(spinSelection.equals("Terminal1")) {
mMap.addMarker(new MarkerOptions().position(new LatLng(10.699160, 122.547208)).title("Terminal1"));
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(10.699160, 122.547208), 16));
}
else if (spinSelection.equals("Terminal2")) {
mMap2.addMarker(new MarkerOptions().position(new LatLng(10.699160,122.547208)).title("Terminal2"));
mMap2.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(10.699160, 122.547208), 16));
}
else if (spinSelection.equals("Terminal3")) {
mMap3.addMarker(new MarkerOptions().position(new LatLng(10.699160,122.547208)).title("Terminal3"));
mMap3.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(10.761685, 122.577042), 16));
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
//do nothing
}
公共类TerminalAllocationsActivity扩展了AppCompativeActivity在OnItemSelectedListener上的MapreadyCallback实现{
纺纱机;
谷歌地图mMap,mMap2,mMap3;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u terminal\u locations);
SupportMapFragment映射片段=
(SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map);
getMapAsync(这个);
微调器=(微调器)findViewById(R.id.spinner);
ArrayAdapter=ArrayAdapter.createFromResource(this,R.array.terminalList,R.layout.spinner\u layout);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
旋转器。设置适配器(适配器);
Context=getApplicationContext();
CharSequence text=“点击框以更改端子。”;
int duration=Toast.LENGTH\u LONG;
Toast Toast=Toast.makeText(上下文、文本、持续时间);
toast.setGravity(重力.重心|垂直|重力.重心,0,0);
toast.show();
}
@凌驾
已于4月1日公开作废(谷歌地图){
地图。添加标记(新标记选项()。位置(新板条(10.699160122.547208))。标题(“圣佩德罗莫洛终点站”);
地图。移动摄像机(CameraUpdateFactory.newLatLngZoom(NewLatlng(10.699160122.547208),16));
}
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
String spinSelection=spinner.getSelectedItem().toString();
if(spinSelection.equals(“Terminal1”)){
mMap.addMarker(新标记选项().位置(新板条(10.699160122.547208)).标题(“终端1”);
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(新LatLng(10.699160122.547208),16));
}
else if(spinSelection.equals(“Terminal2”)){
mMap2.添加标记(新标记选项().位置(新板条(10.699160122.547208)).标题(“端子2”);
mMap2.移动摄像机(CameraUpdateFactory.newLatLngZoom(新LatLng(10.699160122.547208),16));
}
else if(spinSelection.equals(“Terminal3”)){
mMap3.添加标记(新标记选项().位置(新板条(10.699160122.547208)).标题(“端子3”);
mMap3.移动摄像机(CameraUpdateFactory.newLatLngZoom(新LatLng(10.761685122.577042),16));
}
}
@凌驾
未选择公共无效(AdapterView父级){
//无所事事
}
}能否更具体地说明它是如何工作的?每当我更改微调器的值时,贴图位置都不会更新。加载贴图时,它仍在同一位置。是否在选定的侦听器上设置微调器的项目?