スピナーの基本的な使用法 (リスト オプション ボックス)


このセクションの紹介:

元々、このセクションでは Gallery のコントロールについて紹介するつもりでしたが、よく考えたら忘れていました。 Android 4.1以降は非推奨になりましたが、互換性によりギャラリーを使用できますが、よく考えてください。 ギャラリーは画像を切り替えるたびにビューを再作成する必要があるため、このことは忘れてください。 なんという資源の無駄遣いでしょう!水平スクロールビューなどの他の方法でギャラリー効果を実現できます。 水平スクロール効果を実現するには、水平方向の ListView を作成します。興味がある場合は、自分で Google で調べてください。

このセクションでは、Spinner と呼ばれるアダプター コントロールについて説明します。 アプリケーション シナリオ: アプリがユーザーにデータの入力を要求する場合、ユーザーが自分で入力できるようにするだけでなく、より配慮した設計もあります。 ユーザーが選択できる一連のオプションをリストすることで、ユーザーが選択しやすくなります。 早速、Spinner の基本的な使い方を学びましょう~


1リストボックスの水平オフセット距離 水平距離と垂直距離

    android:dropDownSelector
  • : リストボックスが選択されたときの背景
  • android:dropDownWidth
  • : ドロップダウンリストボックスの幅を設定
  • android:gravity
  • : 内部のコンポーネントの配置を設定します
  • android:popupBackground
  • : リスト ボックスの背景を設定します
  • android:prompt
  • : ダイアログ モードでリスト ボックスのプロンプト情報 (タイトル) を設定します (string.xml のみ)引用することができます リソース ID 内のリソース ID を文字列として直接書き込むことはできません
  • android:spinnerMode
  • : リスト ボックスのモード、オプションの値が 2 つあります: dialog: ダイアログ スタイルのウィンドウ
  • dropdown
  • : ドロップダウンメニュー スタイル ウィンドウ (デフォルト)オプションの属性:
  • android:entries
  • : 配列リソースを使用してドロップダウン リスト ボックスのリスト項目を設定します2. 使用例:
  • ちなみに、Spinnerデフォルトで最初の値が選択されます。つまり、Spinner.setSection(0) がデフォルトで呼び出されます。 これにより、デフォルトの選択値を設定できます。さらに、OnItemSelectedListener が 1 回トリガーされます。 イベント、解決策はまだ見つかりません。次の妥協策は、ブール値を追加してから設定することです。 falseの場合はonItemSelected時に判定され、デフォルトでトリガーされ何も動作しません。 ブール値を true に設定します。true の場合、イベントは通常どおりトリガーされます。 この例では、データ ソース、リスト ボックス スタイルなどから比較する 2 つの異なるスピナーが書き込まれています。~ 次に、
レンダリングを見てみましょう
:

コード実装
:

ここでは以前の再利用可能なBaseAdapterがまだ使用されています:

最初のSpinnerのデータソースの書き込み:

res/values の下に次の内容のファイルを書き込みます: myarrays.xml:

<?xml version="1.0"coding="utf-8"?>
<resources>
<string-array name="data">
< <item>高級プラチナ</item>
>
< /string-array>
</resources>


次に、 2 番目のスピナー:
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="horizo​​ntal"
android:padding="5dp">

<ImageView
android:id= "@+id/img_icon"
android:layout_width="48dp"
android:layout_height="48dp"
android:src="@ mipmap/iv_lol_icon1" /> android:layout_marginLeft="10dp"
android :layout_marginTop = "15dp 」

再続编写一个Entitiy实体类:Hero.java

/**
* 2015/9/24 0024 に Jay によって作成されました。
 */
public class Hero {

private int hIcon;
private String hName;

publicヒーロー() {
}

public Hero(int hIcon, String hName) {
this.hIcon = hIcon;
this.hName = hName;
}

public int gethIcon() {
return hIcon;
}

public String gethName() {
return hName;
}

public void sethIcon(int hIcon) {
this.hIcon = hIcon;
}

public void sethName(String hName) {
this.hName = hName;
}
}

最後は MainActivity の布局と Java 代コード部分:

布局文件:activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="5dp"
tools:context=".MainActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="选择您的排位分段"
android:textColor= "#44BDED"
android:textSize="18sp" />

<スピナー
android:id="@+id/spin_one"
android:layout_width="100dp"
android:layout_height="64 dp"
アンドロイド:entries="@array/data"
android:prompt="@string/spin_title"
android:spinnerMode="dialog" />

<TextView
android:layout_width="wrap_content"
android:layout _高さ= Wrap_content"
android:layout_marginTop="10dp"
android:text="选择你的拿手英雄~"
android:textColor="#F5684A"
android:textSize="18sp" />

<スピナー
アンドロイド:id="@+id/spin_two"
android:layout_width="wrap_content"
android:layout_height="64dp" />

</LinearLayout>

MainActivity.java

public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {

private Spinner spin_one;
private Spinner spin_two;
private Context mContext;
// 刚进去かどうか判断する時間接触ItemSelectedの标志
private boolean one_selected = false;
private boolean two_selected = false;
private ArrayList<Hero> mData = null;
private BaseAdapter myAdadpter = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mContext = MainActivity.this;
mData = new ArrayList<Hero>();
bindViews();
}


private void bindViews() {
spin_one = (Spinner) findViewById(R.id.spin_one);
spin_two = (スピナー) findViewById(R .id.spin_two);

mData.add(new Hero(R.mipmap.iv_lol_icon1,"迅捷斥候:提莫(Teemo)"));
mData.add(new Hero(R.mipmap.iv_lol_icon2,"诺)克萨斯之手:德莱耶斯(ダリウス)"));
mData.add(new Hero(R.mipmap.iv_lol_icon3,"無极剑圣:易(Yi)"));
mData.add(new Hero(R.mipmap.iv_lol_icon4,"德莱厄斯:德莱文(Draven)"));
mData.add(new Hero(R.mipmap.iv_lol_icon5,"德邦总管:赵信(XinZhao)") );
mData.add(new Hero(R.mipmap.iv_lol_icon6,"狂战士:奥拉夫(オラフ)"));

myAdadpter = new MyAdapter<Hero>(mData,R.layout.item_spin_hero) {
@オーバーライド
            public void bindView(ViewHolder holder, Hero obj) {
holder.setImageResource(R.id.img_icon,obj.gethIcon());
holder.setText(R.id.txt_name, obj.gethName());
}
};
spin_two.setAdapter(myAdadpter);
spin_one.setOnItemSelectedListener(this);
spin_two.setOnItemSelectedListener(this);

}


@Override
public void onItemSelected(AdapterView<?>parent, View view, int Position, long id) {
switch (parent.getId()){
case R.id.spin_one:
if(one_selected){
Toast.makeText(m) Context,"您的分節は~:" + parent.getItemAtPosition (position).toString(),
Toast.LENGTH_SHORT).show();
}else one_selected = true;
break;
case R.id.spin_two:
if(two_selected){
TextView txt_name = (TextView) view .findViewById(R.id.txt_name);
Toast.makeText(mContext,"您选择的英雄是~:" + txt_name.getText().toString(),
トースト.LENGTH_SHORT).show();
} else two_selected = true
}


さらに、Spinner の OnItemSelectedListener と選択されたアイテムの取得方法については、自分で見てみるだけの価値があります。 コード~


3. コードサンプルのダウンロード:

SpinnerDemo.zip

このセクションの概要


さて、このセクションでは Spinner (ドロップダウン オプション ボックス) の使用方法を紹介します。ははは〜! 私がどのゾーンかランクかは聞かないでください、私は人間と機械の星の王子さまですが、残念ながらブロンズランクで苦戦しています〜 理由はわかりますね

、わかりました、このセクションはここまでです~