Android 中的 Spinner 示例
Android Spinner 是一个类似于下拉列表的视图,用于从选项列表中选择一个选项。它提供了一种从项目列表中选择一个项目的简单方法,当我们单击它时,它会显示所有值的下拉列表。 android spinner 的默认值将是当前选择的值,通过使用Adapter ,我们可以轻松地将项目绑定到 spinner 对象。通常,我们通过在 Kotlin 文件中使用ArrayAdapter来使用项目列表填充 Spinner 控件。
Spinner 小部件的不同属性
XML attributes | Description |
---|---|
android:id | Used to specify the id of the view. |
android:textAlignment | Used to the text alignment in the dropdown list. |
android:background | Used to set the background of the view. |
android:padding | Used to set the padding of the view. |
android:visibility | Used to set the visibility of the view. |
android:gravity | Used to specify the gravity of the view like center, top, bottom, etc |
演示 Spinner 的示例
这是一个显示 GFG 课程列表的 Android 应用程序示例。使用 ArrayAdapter 存储课程列表。创建一个包含微调器的 MainActivity 并单击任何具有该课程名称的微调器 Toast 项目。
创建活动:将有一个活动,因此 MainActivity 将有一个 XML 文件。 activity_main.xml :第一个活动的 XML 文件由带有微调器小部件的约束布局组成。以下是活动 XML 文件的代码:
XML
Java
import android.support.v7.app.AppCompatActivity;
import android.widget.AdapterView;
import android.view.View;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.os.Bundle;
// Main Activity implements Adapter view
public class MainActivity
extends AppCompatActivity
implements AdapterView.OnItemSelectedListener {
// create array of Strings
// and store name of courses
String[] courses = { "C", "Data structures",
"Interview prep", "Algorithms",
"DSA with java", "OS" };
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Take the instance of Spinner and
// apply OnItemSelectedListener on it which
// tells which item of spinner is clicked
Spinner spino = findViewById(R.id.coursesspinner);
spin.setOnItemSelectedListener(this);
// Create the instance of ArrayAdapter
// having the list of courses
ArrayAdapter ad
= new ArrayAdapter(
this,
android.R.layout.simple_spinner_item,
courses);
// set simple layout resource file
// for each item of spinner
ad.setDropDownViewResource(
android.R.layout
.simple_spinner_dropdown_item);
// Set the ArrayAdapter (ad) data on the
// Spinner which binds data to spinner
spino.setAdapter(ad);
}
// Performing action when ItemSelected
// from spinner, Overriding onItemSelected method
@Override
public void onItemSelected(AdapterView<*> arg0,
View arg1,
int position,
long id)
{
// make toastof name of course
// which is selected in spinner
Toast.makeText(getApplicationContext(),
courses[position],
Toast.LENGTH_LONG)
.show();
}
@Override
public void onNothingSelected(AdapterView<*> arg0)
{
// Auto-generated method stub
}
}
Kotlin
import android.os.Bundle
import android.view.View
import android.widget.AdapterView
import android.widget.AdapterView.OnItemSelectedListener
import android.widget.ArrayAdapter
import android.widget.Spinner
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity(), OnItemSelectedListener {
// create array of Strings
// and store name of courses
var courses = arrayOf("C", "Data structures",
"Interview prep", "Algorithms",
"DSA with java", "OS")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Take the instance of Spinner and
// apply OnItemSelectedListener on it which
// tells which item of spinner is clicked
val spin = findViewById(R.id.coursesspinner)
spin.onItemSelectedListener = this
// Create the instance of ArrayAdapter
// having the list of courses
val ad: ArrayAdapter<*> = ArrayAdapter(
this,
android.R.layout.simple_spinner_item,
courses)
// set simple layout resource file
// for each item of spinner
ad.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item)
// Set the ArrayAdapter (ad) data on the
// Spinner which binds data to spinner
spin.adapter = ad
}
override fun onItemSelected(parent: AdapterView<*>?,
view: View, position: Int,
id: Long) {
// make toastof name of course
// which is selected in spinner
Toast.makeText(applicationContext,
courses[position],
Toast.LENGTH_LONG)
.show()
}
override fun onNothingSelected(parent: AdapterView<*>?) {}
}
创建Java和 Kotlin 文件:有一个活动,因此 MainActivity 文件有一个Java/Kotlin 文件。 Main Activity 的Java/Kotlin 文件,其中Array Adapter用于将数据绑定到微调器。我们将在字符串数组中填充数据并将该数据绑定到微调器。这是代码:
Java
import android.support.v7.app.AppCompatActivity;
import android.widget.AdapterView;
import android.view.View;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.os.Bundle;
// Main Activity implements Adapter view
public class MainActivity
extends AppCompatActivity
implements AdapterView.OnItemSelectedListener {
// create array of Strings
// and store name of courses
String[] courses = { "C", "Data structures",
"Interview prep", "Algorithms",
"DSA with java", "OS" };
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Take the instance of Spinner and
// apply OnItemSelectedListener on it which
// tells which item of spinner is clicked
Spinner spino = findViewById(R.id.coursesspinner);
spin.setOnItemSelectedListener(this);
// Create the instance of ArrayAdapter
// having the list of courses
ArrayAdapter ad
= new ArrayAdapter(
this,
android.R.layout.simple_spinner_item,
courses);
// set simple layout resource file
// for each item of spinner
ad.setDropDownViewResource(
android.R.layout
.simple_spinner_dropdown_item);
// Set the ArrayAdapter (ad) data on the
// Spinner which binds data to spinner
spino.setAdapter(ad);
}
// Performing action when ItemSelected
// from spinner, Overriding onItemSelected method
@Override
public void onItemSelected(AdapterView<*> arg0,
View arg1,
int position,
long id)
{
// make toastof name of course
// which is selected in spinner
Toast.makeText(getApplicationContext(),
courses[position],
Toast.LENGTH_LONG)
.show();
}
@Override
public void onNothingSelected(AdapterView<*> arg0)
{
// Auto-generated method stub
}
}
科特林
import android.os.Bundle
import android.view.View
import android.widget.AdapterView
import android.widget.AdapterView.OnItemSelectedListener
import android.widget.ArrayAdapter
import android.widget.Spinner
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity(), OnItemSelectedListener {
// create array of Strings
// and store name of courses
var courses = arrayOf("C", "Data structures",
"Interview prep", "Algorithms",
"DSA with java", "OS")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Take the instance of Spinner and
// apply OnItemSelectedListener on it which
// tells which item of spinner is clicked
val spin = findViewById(R.id.coursesspinner)
spin.onItemSelectedListener = this
// Create the instance of ArrayAdapter
// having the list of courses
val ad: ArrayAdapter<*> = ArrayAdapter(
this,
android.R.layout.simple_spinner_item,
courses)
// set simple layout resource file
// for each item of spinner
ad.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item)
// Set the ArrayAdapter (ad) data on the
// Spinner which binds data to spinner
spin.adapter = ad
}
override fun onItemSelected(parent: AdapterView<*>?,
view: View, position: Int,
id: Long) {
// make toastof name of course
// which is selected in spinner
Toast.makeText(applicationContext,
courses[position],
Toast.LENGTH_LONG)
.show()
}
override fun onNothingSelected(parent: AdapterView<*>?) {}
}