在Android中,您可以使用“ android.widget.Spinner ”类来呈现下拉框选择列表。
注意 Spinner是类似于用于选择项目的下拉列表的小部件。
在本教程中,我们向您展示如何执行以下任务:
渲染XML的微调框,并通过XML文件加载选择项。 使用XML渲染另一个Spinner,并通过代码动态加载选择项。 在Spinner上附加一个侦听器,当用户在Spinner中选择一个值时触发。 在普通按钮上渲染并附加一个侦听器,当用户单击它时触发,它将显示Spinner的选定值。
PS此项目在Eclipse 3.7中开发,并通过Android 2.3.3进行了测试。
1.微调器中的项目清单
打开“ res / values / strings.xml ”文件,定义将在Spinner中显示的项目列表(下拉列表)。
文件:res / values / strings.xml
MyAndroidApp
Choose a country
Malaysia
United States
Indonesia
France
Italy
Singapore
New Zealand
India
2.微调器(下拉列表)
打开“ res / layout / main.xml ”文件,添加两个微调器组件和一个按钮。
在“ spinner1”中,“ android:entries ”表示微调器中的选择项。 在“ spinner2”中,稍后将在代码中定义选择项。
文件:res / layout / main.xml
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/country_arrays"
android:prompt="@string/country_prompt" />
android:id="@+id/spinner2"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
android:id="@+id/btnSubmit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Submit" />
3.代码代码
阅读代码以及代码的注释,这应该是不言自明的。
文件:MyAndroidAppActivity.java
package com.mkyong.android;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.Toast;
public class MyAndroidAppActivity extends Activity {
private Spinner spinner1, spinner2;
private Button btnSubmit;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
addItemsOnSpinner2();
addListenerOnButton();
addListenerOnSpinnerItemSelection();
}
// add items into spinner dynamically
public void addItemsOnSpinner2() {
spinner2 = (Spinner) findViewById(R.id.spinner2);
List list = new ArrayList();
list.add("list 1");
list.add("list 2");
list.add("list 3");
ArrayAdapter dataAdapter = new ArrayAdapter(this,
android.R.layout.simple_spinner_item, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(dataAdapter);
}
public void addListenerOnSpinnerItemSelection() {
spinner1 = (Spinner) findViewById(R.id.spinner1);
spinner1.setOnItemSelectedListener(new CustomOnItemSelectedListener());
}
// get the selected dropdown list value
public void addListenerOnButton() {
spinner1 = (Spinner) findViewById(R.id.spinner1);
spinner2 = (Spinner) findViewById(R.id.spinner2);
btnSubmit = (Button) findViewById(R.id.btnSubmit);
btnSubmit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MyAndroidAppActivity.this,
"OnClickListener : " +
"\nSpinner 1 : "+ String.valueOf(spinner1.getSelectedItem()) +
"\nSpinner 2 : "+ String.valueOf(spinner2.getSelectedItem()),
Toast.LENGTH_SHORT).show();
}
});
}
}
文件:CustomOnItemSelectedListener.java
package com.mkyong.android;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Toast;
public class CustomOnItemSelectedListener implements OnItemSelectedListener {
public void onItemSelected(AdapterView> parent, View view, int pos,long id) {
Toast.makeText(parent.getContext(),
"OnItemSelectedListener : " + parent.getItemAtPosition(pos).toString(),
Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView> arg0) {
// TODO Auto-generated method stub
}
}
4.演示
运行应用程序。
1.结果,显示两个微调器:
2.从spinner1中选择“ France”,将触发项目选择侦听器:
3.从spinner2中选择“ list2”,然后单击Submit按钮:
下载源代码
下载它– Android-Spinner-DropDownList-Example.zip (16 KB)
参考文献
Android Spinner JavaDoc Android Spinner示例
标签: android 下拉 微调器
翻译自: https://mkyong.com/android/android-spinner-drop-down-list-example/