导航:首页 > 操作系统 > androidspinner重写

androidspinner重写

发布时间:2025-07-17 09:06:47

A. android中spinner如何实现省市二级联动

Androidspinner实现省市二级联动,需要自定义adpter,将数据源绑定到adpter,当点击省时,触发自定义响应事件,改变市,示例如下:

java">{
privateTextViewtextView;
privateSpinnerprovince;
privateSpinnercity;
/**.*/
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

//String[]provinces=newString[]{"-省份-","河北省","山西省","北京"};
textView=(TextView)this.findViewById(R.id.textView);
province=(Spinner)this.findViewById(R.id.province);
city=(Spinner)this.findViewById(R.id.city);


//(处理省的显示)
//将可选内容与ArrayAdapter的连接(从资源数组文件中获取数据)
ArrayAdapter<CharSequence>adapter=
ArrayAdapter.createFromResource(this,R.array.province,android.R.layout.simple_spinner_item);
//newArrayAdapter<String>(this,android.R.layout.simple_spinner_item,provinces);
//设置下拉列表的风格
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

//将数据绑定到Spinner视图上
province.setAdapter(adapter);

//添加条目被选中监听器
province.setOnItemSelectedListener(newAdapterView.OnItemSelectedListener(){

@Override
publicvoidonItemSelected(AdapterView<?>parent,Viewview,intposition,longid){
//parent既是province对象
Spinnerspinner=(Spinner)parent;
Stringpro=(String)spinner.getItemAtPosition(position);

//(处理省的市的显示)
//将默认值与ArrayAdapter连接(从资源数组文件中获取数据)
ArrayAdapter<CharSequence>cityAdapter=ArrayAdapter.createFromResource
(MainActivity.this,R.array.citydefault,android.R.layout.simple_spinner_item);
//newArrayAdapter<CharSequence>
//(MainActivity.this,android.R.layout.simple_spinner_item,cities);
//获取所在省含有哪些市(从资源数组文件中获取数据)
if(pro.equals("河北省")){

cityAdapter=ArrayAdapter.createFromResource
(MainActivity.this,R.array.hb,android.R.layout.simple_spinner_item);
}elseif(pro.equals("北京市")){

cityAdapter=ArrayAdapter.createFromResource
(MainActivity.this,R.array.bj,android.R.layout.simple_spinner_item);
}elseif(pro.equals("山西省")){

cityAdapter=ArrayAdapter.createFromResource
(MainActivity.this,R.array.shx,android.R.layout.simple_spinner_item);
}
//绑定数据到Spinner(City)上
city.setAdapter(cityAdapter);
}

@Override
publicvoidonNothingSelected(AdapterView<?>parent){

}

});
}
}

B. spinner内的字体大小怎么设置

spinner虽然没有android:textSize的属性,但是可以设置style

例如:<Spinner
android:id="@+id/order_change_spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="30"
style="@style/life_spinner_style"/>我测试过,是可以改变字体大小的

C. Android涔嬩笅𨰾夋嗛夋嫨浣跨敤绀轰緥

鍦ˋndroid寮鍙戜腑锛屽垱寤轰竴涓鐩磋备笖锷熻兘涓板瘜镄勪笅𨰾夋嗭纸Spinner锛夋槸镊冲叧閲嶈佺殑銆傝╂垜浠阃愭ユ帰绱㈠备綍鍦╔ML甯冨眬鍜孞ava浠g爜涓瀹炵幇杩欎釜锷熻兘锛屼互鍙婂备綍鐩戝惉阃変腑椤瑰拰镊瀹氢箟阃傞厤鍣ㄤ互婊¤冻澶嶆潅闇姹伞

棣栧厛锛岃╂垜浠鍦╔ML甯冨眬鏂囦欢涓瀹氢箟Spinner鍜屼竴涓锘虹镄勯傞厤鍣ㄣ傚湪<Spinner>鍏幂礌涓锛岃剧疆鍏跺藉害鍜岄珮搴︿负镊阃傚簲锛

```xml

<Spinner

android:id="@+id/spinner"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

/>

```

鎺ヤ笅𨱒ワ纴鐢↗ava浠g爜𨱒ュ炲己杩欎釜缁勪欢銆傚湪浣犵殑Activity鎴朏ragment涓锛岄氲繃findViewById()銮峰彇Spinner瀹炰緥锛岀劧钖庤剧疆涓涓狝rrayAdapter锛屼娇鐢ˋrrayAdapter镄勬瀯阃犲嚱鏁颁紶鍏ヤ笂涓嬫枃銆佸竷灞璧勬簮鍜屾暟鎹锛

```java

import ... ArrayAdapter;

ArrayAdapter spinnerAdapter;

List data = Arrays.asList("阃夐”1", "阃夐”2", "阃夐”3");

spinner = findViewById(R.id.spinner);

spinnerAdapter = new ArrayAdapter>(this, android.R.layout.simple_spinner_item, data);

spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

spinner.setAdapter(spinnerAdapter);

```

纭淇濅綘镄勯傞厤鍣ㄨ兘澶熸樉绀哄氭牱鍖栫殑鏁版嵁鍜岃嚜瀹氢箟甯冨眬锛岃繖镙蜂綘鍙浠ユ牴鎹闇瑕佽皟鏁翠笅𨰾夋嗙殑澶栬伞

褰扑綘甯屾湜鐢ㄦ埛鍦ㄤ笅𨰾夋嗕腑杩涜岄夋嫨镞讹纴闇瑕佷负Spinner璁剧疆涓涓鐩戝惉鍣ㄣ傚湪onCreate()鏂规硶涓锛屽疄鐜疠nItemSelectedListener鎺ュ彛锛屼互鍝嶅簲阃変腑椤圭殑鏀瑰彉锛

```java

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

@Override

public void onItemSelected(AdapterView parent, View view, int position, long id) {

String selectedValue = spinnerAdapter.getItem(position);

Toast.makeText(MainActivity.this, "阃夋嫨镄勫: " + selectedValue, Toast.LENGTH_SHORT).show();

}

@Override

public void onNothingSelected(AdapterView parent) {

// 镞犻変腑椤瑰勭悊

}

});

}

```

瑕佷富锷ㄨ幏鍙栭変腑镄勫硷纴浣犲彲浠ョ洿鎺ヨ皟鐢╯pinner.getSelectedItem()銮峰彇鏂囨湰锛屾垨钥呬娇鐢╯pinner.getSelectedItemPosition()銮峰彇浣岖疆銆傚姟蹇呭勭悊镞犻変腑椤圭殑杈圭紭𨱍呭喌锛

```java

int currentPosition = spinner.getSelectedItemPosition();

String selectedItem = (currentPosition != AdapterView.INVALID_POSITION) ? spinner.getSelectedItem() : null;

```

涓轰简鍒濆嫔寲榛樿ら変腑椤癸纴浣犲彲浠ヨ剧疆setSelection()锛屾瘆濡傚皢绗浜屼釜阃夐”璁剧疆涓洪粯璁わ细

```java

button.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

spinner.setSelection(1);

}

});

```

杩欐牱锛屼綘涓崭粎鍒涘缓浜嗕竴涓锘烘湰镄勪笅𨰾夋嗭纴杩樻坊锷犱简鐢ㄦ埛浜や簰鍜岄変腑椤圭殑鐩戝惉銆傝嚜瀹氢箟阃傞厤鍣ㄥ厑璁镐綘镙规嵁闇瑕佸𪾢绀哄嶆潅鏁版嵁锛岃岀洃钖鍣ㄥ垯纭淇濅简阃夋嫨浜嬩欢镄勫勭悊銆傚湪瀹为檯椤圭洰涓锛岃板缑镙规嵁搴旂敤闇姹傚瑰竷灞銆佹牱寮忓拰鏁版嵁杩涜岃皟鏁达纴浠ユ彁鍗囩敤鎴蜂綋楠屻

阅读全文

与androidspinner重写相关的资料

热点内容
pythondatabase库 浏览:787
八年级英语PDF 浏览:828
安卓手机上出现绿线是怎么回事 浏览:840
android系统当前时间 浏览:233
哪种解压软件可以放下很长的密码 浏览:317
pcmarkforandroid 浏览:741
安卓机安装微信需要注意什么 浏览:881
android下拉刷新上拉加载更多 浏览:681
程序员假期出去旅游不联系 浏览:756
ronin加密钱包 浏览:642
php组件是什么 浏览:173
通达信指标公式编辑器文件夹 浏览:862
云服务器绑定ip如何修改 浏览:323
android项目框架搭建 浏览:47
增压器的压缩比 浏览:884
codeblocks图形编程 浏览:861
充电动画源码使用教程 浏览:766
公司做app有什么技巧 浏览:678
246计算法 浏览:965
编程员在工作中的表现 浏览:873