導航:首頁 > 操作系統 > 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重寫相關的資料

熱點內容
android系統當前時間 瀏覽:233
哪種解壓軟體可以放下很長的密碼 瀏覽:317
pcmarkforandroid 瀏覽:741
安卓機安裝微信需要注意什麼 瀏覽:879
android下拉刷新上拉載入更多 瀏覽:681
程序員假期出去旅遊不聯系 瀏覽:754
ronin加密錢包 瀏覽:642
php組件是什麼 瀏覽:171
通達信指標公式編輯器文件夾 瀏覽:860
雲伺服器綁定ip如何修改 瀏覽:323
android項目框架搭建 瀏覽:47
增壓器的壓縮比 瀏覽:884
codeblocks圖形編程 瀏覽:859
充電動畫源碼使用教程 瀏覽:766
公司做app有什麼技巧 瀏覽:678
246計演算法 瀏覽:965
編程員在工作中的表現 瀏覽:873
android添加圖片代碼 瀏覽:27
什麼是職位app 瀏覽:938
如何從ftp登錄伺服器配置 瀏覽:297