Android - liste déroulante sous les commandes de base : Spinner (9)

1. Points de connaissance

(1) Maîtrisez l'utilisation de la liste déroulante Spinner;

(2) Le contenu de l'affichage Spinner peut être configuré via le programme ;

(3) Le contenu de l'affichage Spinner peut être configuré via le fichier de configuration.

2.Détails

En html, la liste déroulante est complétée à l'aide de la balise <select> Si vous souhaitez ajouter le contenu de la liste déroulante dans cette balise, vous devez compléter la liste déroulante via la balise <option>. Utilisez ensuite le composant Spinner dans Android pour compléter la liste déroulante.

 

Pour le composant Spinner, le cœur consiste à définir le contenu de la liste déroulante, et tout le contenu expliqué consiste à définir le contenu de la liste déroulante.

 Dans la classe Spinner, la méthode setAdapter(SpinnerAdapter) consiste à définir le contenu de sélection de la liste déroulante. Le SpinnerAdapter est un adaptateur qui encapsule toutes les données. Après encapsulation, il peut être placé dans le Spinner via cette méthode.

 Méthode 1 : Configurez directement les fichiers de ressources :

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="请选择编码格式:" />
    <Spinner 
        android:id="@+id/selectcode"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />

 Pour Spinner, si vous définissez ses options de liste déroulante en configurant le fichier de ressources, vous devez définir un XML dans le fichier de ressources sous les valeurs.

<?xml version="1.0" encoding="utf-8"?>
<resources>
	<string-array name="code_info">
	    <item>utf-8</item>
	    <item>gbk</item>
	    <item>gb2312</item>
	    <item>uft-16</item>
	    <item>iso88591</item>
	</string-array>
</resources>

Maintenant que nous avons configuré un fichier de ressources, le problème à ce stade est de définir le fichier de ressources sur l'option de la liste déroulante. Peut être défini directement dans le fichier de mise en page.

  <Spinner 
        android:id="@+id/selectcode"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:entries="@array/code_info"—将资源文件中的内容设置到选项上
        />

 Maintenant que l'effet est sorti, nous pouvons bien sûr également définir des informations d'invite pour la liste déroulante.

<Spinner 
        android:id="@+id/selectcode"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:entries="@array/code_info"
        android:prompt="@string/promt_info"—配置提示信息
        />

Ce qui précède consiste à définir les options de la liste déroulante sous la forme de fichiers de ressources de configuration.

Méthode 2 : complétez le paramètre d'élément de liste via la classe android.widget.ArrayAdapter

       Fonctions de la classe ArrayAdapter :

              · Directement en lisant le contenu défini du fichier ressource

              Définir les éléments de la liste via la collection List

Exemple 1 : Définir des éléments de liste en lisant des fichiers de ressources

 

<string-array name="color_info">
	    <item>红色</item>
	    <item>蓝色</item>
	    <item>绿色</item>
	    <item>白色</item>
	    <item>黑色</item>
	</string-array>
<Spinner 
        android:id="@+id/selectcolor"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:prompt="@string/color_info"
        />

 Maintenant, il n'y a pas d'informations de liste pour notre liste déroulante. Maintenant, nous la configurons via le programme Activity. Nous devons savoir qu'ArrayAdapter est similaire à une collection, et nous n'avons qu'à formuler des génériques.

 

public class SpinnerActivity extends Activity {
	private Spinner colorSpinner = null;
	 ArrayAdapter<CharSequence> adapter = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.spinner_activity);
        this.colorSpinner = (Spinner) super.findViewById(R.id.selectcolor);//取得组件
        this.colorSpinner.setPromptId(R.string.color_info);//设置提示信息
        //现在关键问题就是要装配一个SpinnerAdapter
        this.adapter = ArrayAdapter.createFromResource(this, R.array.color_, android.R.layout.simple_spinner_item);
        this.adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);//重新设置风格
        colorSpinner.setAdapter(this.adapter);//设置显示内容
    }
}

Nous avons maintenant pu définir les options de la liste déroulante, mais il n'y a pas beaucoup de différence par rapport à la première méthode.

Exemple 2 : terminez la configuration via la collection List. 

<Spinner 
        android:id="@+id/selectcity"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />
package com.example.spinnerproject;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

public class SpinnerActivity extends Activity {
	private Spinner colorSpinner = null;
	private Spinner citySpinner = null;
	 ArrayAdapter<CharSequence> adapterColor = null;
	 ArrayAdapter<CharSequence> adapterCity = null;
	 List<CharSequence> list = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.spinner_activity);
        this.colorSpinner = (Spinner) super.findViewById(R.id.selectcolor);//取得组件
        this.colorSpinner.setPromptId(R.string.color_info);//设置提示信息
        //现在关键问题就是要装配一个SpinnerAdapter
        this.adapterColor = ArrayAdapter.createFromResource(this, R.array.color_, android.R.layout.simple_spinner_item);
        this.adapterColor.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);//重新设置风格
        colorSpinner.setAdapter(this.adapterColor);//设置显示内容
        
        //以下是通过List集合完成下拉列表选项设置
        this.citySpinner = (Spinner) super.findViewById(R.id.selectcity);
        this.citySpinner.setPromptId(R.string.city_info);
        this.list = new ArrayList<CharSequence>();//实例化集合
        this.list.add("兰州");
        this.list.add("北京");
        this.list.add("上海");
        this.list.add("深圳");
        this.list.add("广州");
        this.adapterCity = new ArrayAdapter<CharSequence>(this,android.R.layout.simple_spinner_item,this.list);//装配适配器
        this.adapterCity.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);//重新设置风格
        this.citySpinner.setAdapter( this.adapterCity );//设置下拉选项
    }
}

 D'après les opérations ci-dessus, le composant de liste déroulante est un peu plus difficile que les composants que nous avons appris auparavant. Dans la plupart des cas, les options de la liste déroulante sont définies sous la forme de fichiers de ressources de configuration. Ce n'est que dans des cas particuliers que le programme Activity sera utilisé pour la configuration.

3. Résumé

(1) Utilisez Spinner pour compléter la fonction d'affichage de la zone de liste déroulante ;

(2) Le contenu affiché de la liste déroulante peut être rempli via des fichiers de configuration ou des programmes.

 

Je suppose que tu aimes

Origine blog.csdn.net/weixin_41830242/article/details/131215430
conseillé
Classement