spinner 报空指针

qq_37890164 2018-11-23 07:37:51
package com.example.a10653.wymap;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

import com.amap.api.maps.AMap;
import com.amap.api.maps.MapView;
import com.amap.api.maps.model.MyLocationStyle;

public class MainActivity extends AppCompatActivity {

private MapView mapView;
private AMap aMap;
private Spinner spinner;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mapView = findViewById(R.id.map);
spinner = findViewById(R.id.map_type_spinner);
mapView.onCreate(savedInstanceState);
init();
initSpinner();
}

private void init() {
if (aMap == null){
aMap = mapView.getMap();
}
aMap.showIndoorMap(true);
setUpMap();
}

private void setUpMap(){
aMap.getUiSettings().setMyLocationButtonEnabled(true);
aMap.setMyLocationEnabled(true);
setupLocationStyle();
}

private void setupLocationStyle(){
MyLocationStyle myLocationStyle = new MyLocationStyle();
myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATE);
aMap.setMyLocationStyle(myLocationStyle);
aMap.setMyLocationEnabled(true);
}

private void initSpinner(){

String[] mapTypes = getResources().getStringArray(R.array.map_type);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this,R.layout.map_type_spinner,mapTypes);
spinner.setAdapter(arrayAdapter);
spinner.setSelected(false);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if (position == 2){
aMap.setMapType(AMap.MAP_TYPE_BUS);
}
if (position == 3){
aMap.setMapType(AMap.MAP_TYPE_NAVI);
}
if (position == 4){
aMap.setMapType(AMap.MAP_TYPE_NIGHT);
}
if (position == 5){
aMap.setMapType(AMap.MAP_TYPE_NORMAL);
}
if (position == 6){
aMap.setMapType(AMap.MAP_TYPE_SATELLITE);
}
}

@Override
public void onNothingSelected(AdapterView<?> parent) {

}
});
}
}
...全文
830 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
印度恒河猴 2018-11-30
  • 打赏
  • 举报
回复
引用 1 楼 cftxlin 的回复:
楼主你的东西确定可以编译通过吗?
spinner = findViewById(R.id.map_type_spinner);
这个应该前面有个强制类型转换吧
spinner = (Spinner)findViewById(R.id.map_type_spinner);

控件类型强制转换已经被废弃了现在
楼兰公子 2018-11-27
  • 打赏
  • 举报
回复
调试一下就会发现你的findViewById需要被当前所在的布局文件引用例如 activity_main_view.findViewById
r00_a2lBUR 2018-11-25
  • 打赏
  • 举报
回复
执行到哪里报?
  • 打赏
  • 举报
回复
楼主你的东西确定可以编译通过吗? spinner = findViewById(R.id.map_type_spinner); 这个应该前面有个强制类型转换吧 spinner = (Spinner)findViewById(R.id.map_type_spinner);

80,356

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧