的作者做的一个项目,通过app来监测设备是否在线状态,这时就需要实现分别查询“在线”、“离线”、“全部”三种选项的设备情况。也就是要能实现根据在线与否的状态来对设备进行筛选。
要对数据表中数据进行筛选,经常用到下拉列表框来设定选项,当点选不同选项时,根据选中内容进行筛选。要想完成此项目的,首先要做的就是,当点选下拉列表框中选项时,如何获得选项的内容?下边做一简单介绍。
一、下拉列表框选项字段数组设计
选项数组放在res/values/arrays.xml中,目录如图1所示,代码如码1所示,数组名称为“option”,有“在线”、“离线”、“全部”三个选项。
图1 下拉列表框选项数组放置目录
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="option">
<item>全部</item>
<item>在线</item>
<item>离线</item>
</string-array>
</resources>
码1 下拉列表框选项数组代码
二、主界面设计
为了测试,当点选下拉列表框某个选项时,是否获得该选项的内容。在主界面上除了设计一个下拉列表框之外,还设计了一个textview,用来显示点选下拉列表框之后获得的内容。在android studio中,下拉列表框的名字是Spinner,如图2所示。
图2 下拉列表框名称
主界面设计如图3所示。
图3 主界面
layout代码如码2所示,注意Spinner的属性设置里,有一条语句:
android:entries="@array/option",
此句是把option数组与下拉列表框进行了关联,下拉列表框显示的内容即为数组内容。
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="80dp"
android:text="获取内容"
app:layout_constraintHorizontal_bias="0.562"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Spinner
android:id="@+id/spinner"
style="@style/Widget.AppCompat.Spinner.Underlined"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_weight="0.6"
android:entries="@array/option"
tools:ignore="MissingConstraints"
tools:layout_editor_absoluteX="61dp"
tools:layout_editor_absoluteY="80dp">
</Spinner>
</androidx.constraintlayout.widget.ConstraintLayout>
码2 layout代码
三、java代码
MainActivity.java代码如码3所示,其中
spinner.setOnItemSelectedListener
为下拉列表框点选选项时的监听。
MainActivity.this.getResources().getStringArray(R.array.option)[position]
为获取下拉列表框点选项对应的option数组内容。
package com.example.myspinner;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Spinner;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
TextView textView;
Spinner spinner;
String spinnercontext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.text);
spinner=(Spinner)findViewById(R.id.spinner);
spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
spinnercontext=MainActivity.this.getResources().getStringArray(R.array.option)[position];
textView.setText(spinnercontext);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}
码3 MainActivity.java代码
四、测试
测试结果如图4所示,当下拉列表框选中不同选项时,textview内容也会随之变化,说明用此方法可以获得下拉列表框选项的内容。
图4 测试结果图
文章来源地址https://www.toymoban.com/news/detail-405160.html文章来源:https://www.toymoban.com/news/detail-405160.html
到了这里,关于Android点选下拉列表框选项,获取选项内容的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!