Penggunaan asas pemutar (kotak pilihan senarai)
Pengenalan kepada bahagian ini:
Pada asalnya, bahagian ini ingin memperkenalkan anda kepada kawalan Galeri, tetapi selepas memikirkannya, saya terlupa mengenainya kerana Ia telah ditamatkan selepas Android 4.1 Walaupun kami boleh menggunakan Galeri melalui keserasian, tetapi fikirkan Lupakannya, kerana Galeri perlu mencipta semula paparan setiap kali ia menukar gambar, yang sudah pasti akan menyebabkan Sungguh membazir sumber! Kita boleh mencapai kesan Galeri melalui kaedah lain, seperti melalui HorizontalScrollView Untuk mencapai kesan tatal mendatar, atau tulis ListView mendatar ~ Google sendiri jika anda berminat!
Bahagian ini adalah mengenai kawalan Penyesuai yang dipanggil Spinner! Senario aplikasi: Apabila apl kami memerlukan pengguna memasukkan data, selain membenarkan pengguna menaip sendiri, terdapat juga reka bentuk yang lebih bertimbang rasa: Memudahkan pengguna kami dengan menyenaraikan satu set pilihan untuk mereka pilih! Tanpa berlengah lagi, mari kita mula mempelajari penggunaan asas Spinner~
1 Atribut berkaitan
- android:dropDownHorizontalOffset : Tetapkan jarak mengimbangi mendatar kotak senarai
- android:dropDownVerticalOffset: Tetapkan jarak mendatar dan menegak kotak senarai
- android:dropDownSelector: Latar belakang kotak senarai apabila dipilih
- android:dropDownWidth: Tetapkan lebar kotak senarai juntai bawah
- android:gravity: Tetapkan penjajaran komponen di dalam
- android:popupBackground: Tetapkan latar belakang kotak senarai
- android:prompt: Tetapkan maklumat segera ( tajuk) kotak senarai dalam mod dialog , hanya boleh merujuk string.xml Id sumber dalam sumber tidak boleh ditulis secara langsung sebagai rentetan
- android:spinnerMode: Mod kotak senarai, dengan dua nilai pilihan: dialog: Dialog style Window dropdown: tetingkap gaya menu drop-down (lalai)
- Atribut pilihan: android:enries: Gunakan sumber tatasusunan untuk menetapkan item senarai drop- kotak senarai bawah
2 Contoh penggunaan:
Sebenarnya, Spinner akan memilih nilai pertama secara lalai, iaitu memanggil spinner. .setSection(0) secara lalai, Anda boleh menetapkan nilai lalai yang dipilih melalui ini Selain itu, OnItemSelectedListener akan dicetuskan sekali. Peristiwa, tiada penyelesaian ditemui lagi Kompromi berikut ialah: tambah nilai boolean, dan kemudian tetapkan Jika ia palsu, ia akan dinilai apabila onItemSelected Jika palsu, ini bermakna ia dicetuskan secara lalai dan tiada operasi akan dilakukan. Tetapkan nilai boolean kepada benar; jika benar, acara akan dicetuskan secara normal! Dalam contoh, dua Spinner berbeza ditulis untuk membandingkan daripada sumber data, gaya kotak senarai, dsb.~ Seterusnya, mari kita lihat pada pemaparan
:
Pelaksanaan kod :
BaseAdapter boleh guna semula kami sebelum ini masih digunakan di sini:
Sumber data Spinner pertama ditulis:
Tulis fail di bawah res/values: myarrays.xml dengan kandungan berikut:
& lt; Sumber & gt;
; item & gt; Silver & lt;/ item & gt; daripada Spinner kedua:
item_spin_hero.xml
:
<?xml version="1.0" encoding="utf- 8"?>
<LinearLayout xmlns :android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height=" match_parent"
android:orientation="horizontal"
<ImageView android:id="@+id/img_icon" android:layout_width = 48dp :id=" @+id /txt_name"
android:layout_width="wrap_content"android:layout_marginT op="15dp"
android :text ="Demacia"
android:textSize="16sp" />
</LinearLayout>
再接着编写一个Entitiy实体类:Hero.java:
* Dibuat oleh Jay pada 2015/9/24 0024.
*/
public class><🎜 Hero > private int hIcon;
private String hName;
public Hero() {
}
public Hero(int h icon, public ikon ikon = hIcon;
this.hName = hName;
}
public int gethIcon() {
return hIcon;<🎜 >
public int gethIcon() {
return hIcon;<🎜 >< saya() {
kembali hName;
}
public void sethIcon(int hIcon) {
this.hIcon = vo hIcon; >< sethName(String hName) {
this.hName = hName;
}
}
最后是MainActivity的布局与Java代码部分:="
布局文件:activity_main.xml:
android: layout_height="match_parent"
android:orientation="vertical"
android:padding="5dp"
tools:context=".MainActivity">
; &Lihat android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="选择您的排位分段"
id 4 text =" android:textSize ="18sp" />
<Pemutar
android:id="@+id/spin_one"
android:layout_width="100dp"<🎜
android:entries="@array/data"
android:prompt="@string/spin_title"
/> > Android: Layout_width = "wrap_content"
android: Layout_height = "wrap_content"
android: Layout_margintop = "10dp" "#F5684A"
android:textSize="18sp" />
<Spinner
android:id="@+id/spin_two" android
android:layout_height="64dp" />
</LinearLayout>
MainActivity.java:
pribadi Spinner spin_one;
o private Spin Spin w;< mContext;
//判断是否为刚进去时触发onItemSelected的标志
private boolean one_selected = false;
private boolean two_selected = false;
; ray&t lt ; mData = null;
private BaseAdapter myAdadpter = null;
@Override
dilindungi void onCreate(Bundle savedInstanceState) > supersavedInstanceState) ... 🎜> setContentView(R.layout .activity_main);
mContext = MainActivity.this;
mData = new ArrayList<Hero>();
bindViews(> bindViews(); ><🎜 private void bindViews( ) {
mData.add(new Hero(R.mipmap.iv_lol_icon3,"无极剑圣:易(Yi)”);
mData.add(iv_lol_map.)莱厄斯:德莱文(Draven)"));
mData.add(Wira baharu(R.mipmap.iv_lol_icon5,"德邦总管:赵信.));< .. .tambah (Hero baharu(R.mipmap.iv_lol_icon6,"狂战士:奥拉夫(Olaf)"));
myAdadpter = MyAdapter<Hero> @ Tolak
public void bindView (pemegang pemegang, hero obj) {
holder.setimageresource (r.id.img_icon, obj.gethicon ()); ;
}
};
spin_two.setAdapter(myAdadpter);
spin_one.set OnItemselected;🎜 t (thiselected) .setOnItemSelectedListener(this);
}
@Override
public void onItemSelected (adapterView & lt;? & Gt; ibu bapa, paparan paparan, kedudukan int, id panjang) {
case r. id.spin_one:
jika (satu_dipilih){
Toast.makeText(mContext,"您的分段是~:(mendapatkan Posisi) Roti bakar.LENGTH_SHORT). show();
} else one_selected = true;
break;
. dipilih){
TextView txt_name = (TextView) view.findViewById(R .id.txt_name);
Toast.makeText(mContext,"您选择的英雄是~:" + txt_name.getText().toast ToString(),<🎜 > .LENGTH_SHORT).tunjukkan();
} else two_selected = true;
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}
Selain itu, berkenaan Spinner's OnItemSelectedListener dan cara mendapatkan nilai item yang dipilih, cuma baca sendiri perkara di atas Kod~
3. Muat turun contoh kod:
SpinnerDemo.zip
Ringkasan bahagian ini
Baiklah , bahagian ini memperkenalkan anda kepada penggunaan Spinner (kotak pilihan drop-down), contohnya agak menarik, haha~! Jangan tanya saya zon atau pangkat mana saya, saya adalah putera kecil manusia dan mesin, tetapi malangnya saya telah bergelut di peringkat gangsa~ Anda tahu kenapa, itu sahaja untuk bahagian ini~