Android中string-array利用反射实现省市联动

          首先,讲省市联动的数据写成样式

样式片段为:


        选择省份
        北京
        天津
        河北
        山西
        内蒙古
        辽宁
        吉林
        黑龙江
        上海
        江苏
        浙江
        安徽
        福建
        江西
        山东
        河南
        湖南
        湖北
        广西
        广东
        海南
        贵州
        重庆
        四川
        云南
        西藏
        陕西
        甘肃
        青海
        宁夏
        新疆
        香港
        澳门
        台湾
    
    
    
        选择市区
    
    
    
        选择市区
		东城区
		西城区
		崇文区


之后在MainActivity中    静态代码块里放入

Class c = R.class;
clazz = c.getDeclaredClasses()[0];

由于反射我也只学个入门,R文件中的第一个静态类是array,所以采用了下标为零的方法。感觉非常愚蠢,这里就抛砖引玉,希望大家能给个好的方法。


之后有两个spinner,一个是省,一个是市

添加监听事件,当省份改变时,获得省份的名字name,

获得相应省份的string-array的ID,

Field field = clazz.getDeclaredField(name);
int cityId = (Integer) field.get(int.class);


填充数据


String[] resource = getResources().getStringArray(cityID);
SpinnerAdapter adapter2 = new ArrayAdapter(
				MainActivity.this,android.R.layout.simple_spinner_item,resource);
spinner2.setAdapter(adapter2);


你可能感兴趣的:(Android中string-array利用反射实现省市联动)