English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
最近プロジェクトでAndroid Spinnerを使用したため、ここで簡単な例を書いて、使用方法を確認する。
Spinner
是一个下拉列表,往安卓界面中拖拽一个Spinner控件,在属性中设置Android:entries=“@array/spinner_data”
其中spinner_data为在string中设置的数组。数组中由固定写好的值。此时便可在界面设置好下拉列表。
<Spinner android:id="@"+id/spinner1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@"+id/textView1" android:layout_below="@"+id/textView1" android:layout_marginTop="17dp" android:entries="@array/spinner_data"/>
もちろん、ユーザーエクスペリエンスを良くするために、android:spinnerMode="dialog"属性を設定することができます。これにより、下拉リストにポップアップボックスが表示されます。
アダプター:
アダプターはデータソースからデータを抽出し、各UIコンポーネントに伝える責任があります。主なアダプターadapterはArrayAdapterとBaseAdapterです。つまり、アダプターは配列などのデータソースからデータを取得し、Spinnerにデータを伝え、画面に表示します。
まずデータソースを定義
private String[] ss=new String[]{ "ネコ", "トラ", "ライオン", };
データソース2
private List<String> list=new ArrayList<String>(); list.add("百度"); list.add("腾讯"); list.add("阿里巴巴");
次定义一个类Myadapter继承与抽象类BaseAdapter,抽象方法有四个。
private class Myadapter extends BaseAdapter{ @Override public int getCount</span>() { // TODO Auto-生成されたメソッドスタブ return ss.length; } @Override public Object getItem(int position) { // TODO Auto-生成されたメソッドスタブ return null; } @Override public long getItemId(int position) { // TODO Auto-生成されたメソッドスタブ return 0; } @Override public View getView</span>(int position, View convertView, ViewGroup parent) { // TODO Auto-生成されたメソッドスタブ TextView textView = new TextView(MainActivity.this); textView.setText(ss[position]); return textView; }
次に、メイン関数内で
Spinner spinner = (Spinner) findViewById(R.id.spinner;1); BaseAdapter adapter = new Myadapter(); spinner.setAdapter(adapter);
まず、Spinner コントロールを見つけ、adapter をインスタンス化します。adapter アダプタを使用してデータソース ss のデータを取得します。
BaseAdapter アダプタで最も重要な方法は getcount() および getview() メソッドです。前者はデータソースの長さを返し、後者はいくつかの操作を行います。
もちろん、もっとシンプルな ArrayAdaper アダプタを使用することもできます。
Spinner spinner = (Spinner) findViewById(R.id.spinner;1); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, ss); spinner.setAdapter(adapter);
以上の文句を通じて、配列 ss に直接定位できます。
ご読阅ありがとうございます。皆様のサポートに感謝します!