English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Android Spinnerとアダプターモードの詳細とサンプルコード

最近プロジェクトで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 に直接定位できます。

ご読阅ありがとうございます。皆様のサポートに感謝します!

おすすめ