我正在研究谷歌地图api,其中在地图屏幕上,我想为用户提供一个选项,让用户通过微调器选择地图类型。 map选项的返回类型是整数,所以我将该值赋给spinner,以便通过Integer Array进行选择。我的代码段如下:
private GoogleMap mMap;
int normMap = mMap.MAP_TYPE_NORMAL;
int satelliteMap =mMap.MAP_TYPE_SATELLITE;
int terrainMap =mMap.MAP_TYPE_TERRAIN;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_location_demo);
spinnerOsversions = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter<Integer> adapter_state = new ArrayAdapter<Integer>(this,
android.R.layout.simple_spinner_item, mapOptions);
//Here it shows an error that Integer should not be passed to it, want to send my mapType int array list to it
adapter_state.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerOsversions.setAdapter(adapter_state);
spinnerOsversions.setOnItemSelectedListener(this);
}
答案 0 :(得分:1)
假设变量mapOptions的类名是YourClass,请将代码修改为:
ArrayAdapter<YourClass> adapter_state = new ArrayAdapter<YourClass>(this,
android.R.layout.simple_spinner_item, mapOptions);
在android docs中:
public ArrayAdapter(Context context,int resource,T [] objects)
构造函数
参数
context - 当前语境。
resource - 包含在实例化视图时使用的TextView的布局文件的资源ID
objects - 要在ListView中表示的对象。