当前位置:   article > 正文

Android点选下拉列表框选项,获取选项内容_android下拉选择框

android下拉选择框

的作者做的一个项目,通过app来监测设备是否在线状态,这时就需要实现分别查询“在线”、“离线”、“全部”三种选项的设备情况。也就是要能实现根据在线与否的状态来对设备进行筛选。

要对数据表中数据进行筛选,经常用到下拉列表框来设定选项,当点选不同选项时,根据选中内容进行筛选。要想完成此项目的,首先要做的就是,当点选下拉列表框中选项时,如何获得选项的内容?下边做一简单介绍。

一、下拉列表框选项字段数组设计

选项数组放在res/values/arrays.xml中,目录如图1所示,代码如码1所示,数组名称为“option”,有“在线”、“离线”、“全部”三个选项。

 图1 下拉列表框选项数组放置目录

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3. <string-array name="option">
  4. <item>全部</item>
  5. <item>在线</item>
  6. <item>离线</item>
  7. </string-array>
  8. </resources>

码1 下拉列表框选项数组代码

二、主界面设计

为了测试,当点选下拉列表框某个选项时,是否获得该选项的内容。在主界面上除了设计一个下拉列表框之外,还设计了一个textview,用来显示点选下拉列表框之后获得的内容。在android studio中,下拉列表框的名字是Spinner,如图2所示。

图2 下拉列表框名称

界面设计如图3所示。

图3 主界面

layout代码如码2所示,注意Spinner的属性设置里,有一条语句:

android:entries="@array/option",

此句是把option数组与下拉列表框进行了关联,下拉列表框显示的内容即为数组内容。

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent"
  7. tools:context=".MainActivity">
  8. <TextView
  9. android:id="@+id/text"
  10. android:layout_width="wrap_content"
  11. android:layout_height="wrap_content"
  12. android:layout_marginTop="80dp"
  13. android:text="获取内容"
  14. app:layout_constraintHorizontal_bias="0.562"
  15. app:layout_constraintLeft_toLeftOf="parent"
  16. app:layout_constraintRight_toRightOf="parent"
  17. app:layout_constraintTop_toTopOf="parent" />
  18. <Spinner
  19. android:id="@+id/spinner"
  20. style="@style/Widget.AppCompat.Spinner.Underlined"
  21. android:layout_width="wrap_content"
  22. android:layout_height="50dp"
  23. android:layout_weight="0.6"
  24. android:entries="@array/option"
  25. tools:ignore="MissingConstraints"
  26. tools:layout_editor_absoluteX="61dp"
  27. tools:layout_editor_absoluteY="80dp">
  28. </Spinner>
  29. </androidx.constraintlayout.widget.ConstraintLayout>

码2 layout代码

三、java代码

MainActivity.java代码如码3所示,其中

spinner.setOnItemSelectedListener

为下拉列表框点选选项时的监听。

MainActivity.this.getResources().getStringArray(R.array.option)[position]

为获取下拉列表框点选项对应的option数组内容。

  1. package com.example.myspinner;
  2. import androidx.appcompat.app.AppCompatActivity;
  3. import android.os.Bundle;
  4. import android.view.View;
  5. import android.widget.AdapterView;
  6. import android.widget.Spinner;
  7. import android.widget.TextView;
  8. public class MainActivity extends AppCompatActivity {
  9. TextView textView;
  10. Spinner spinner;
  11. String spinnercontext;
  12. @Override
  13. protected void onCreate(Bundle savedInstanceState) {
  14. super.onCreate(savedInstanceState);
  15. setContentView(R.layout.activity_main);
  16. textView = (TextView) findViewById(R.id.text);
  17. spinner=(Spinner)findViewById(R.id.spinner);
  18. spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){
  19. @Override
  20. public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
  21. spinnercontext=MainActivity.this.getResources().getStringArray(R.array.option)[position];
  22. textView.setText(spinnercontext);
  23. }
  24. @Override
  25. public void onNothingSelected(AdapterView<?> parent) {
  26. }
  27. });
  28. }
  29. }

码3 MainActivity.java代码

四、测试

测试结果如图4所示,当下拉列表框选中不同选项时,textview内容也会随之变化,说明用此方法可以获得下拉列表框选项的内容。

 图4 测试结果图

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/111519
推荐阅读
相关标签
  

闽ICP备14008679号