Android基础(一)布局4.下拉框

xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_height="fill_parent"
    android:layout_width="fill_parent">
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Spinner"/>
    <Spinner
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/spinner1"
        android:drawSelectorOnTop="false"/>
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Spinner2"/>
    <Spinner
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/spinner2"
        android:drawSelectorOnTop="false"/>
</LinearLayout>

java中onCreate方法:

private ArrayList<String> allcountries;
    private ArrayAdapter<String> aspnCountries;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_spinner);
        findview1();
        findview2();

为下拉框插入数据有两种方式
方式一:

 private static final String[] mCountries={"China","Russia","USA"};
    private void findview1()
    {
        Spinner spinner_c=(Spinner)findViewById(R.id.spinner1);
        allcountries=new ArrayList<String>();
        for(int i=0;i<mCountries.length;i++)
        {
            allcountries.add(mCountries[i]);
        }
        aspnCountries=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,allcountries);
        aspnCountries.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner_c.setAdapter(aspnCountries);
    }

1.allcountries.add(mCountries[i]);先是将数据放在数组allcountries中
2. ArrayAdapter 数组适配器,数组和视图之间的桥梁
3. ArrayAdapter arrayAdapter = new ArrayAdapter( ArrayListDemo.this, android.R.layout.simple_list_item_1, adapterData);
第一个参数是该活动,第二个参数是一个布局,使得数组中的数据按该布局显示,第三个参数是数据
4.setDropDownViewResource 适配器的方法,用于设置设置下拉列表下拉时的菜单样式
5. spinner_c.setAdapter()将适配器运用于组件Spinner中
方式二

private void findview2()
    {
        Spinner spinner_2=(Spinner)findViewById(R.id.spinner2);
        ArrayAdapter<CharSequence> adapter=ArrayAdapter.createFromResource(this,R.array.countries,android.R.layout.simple_spinner_item);
        spinner_2.setAdapter(adapter);
    }

1.R.array.countries必须在资源文件夹中有资源
2.R.layout.simple_spinner_item是一个样式

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="countries">
        <item>Japan</item>
        <item>England</item>
        <item>France</item>
        <item>Germany</item>
        <item>India</item>
    </string-array>
</resources>

猜你喜欢

转载自blog.csdn.net/qq_37282683/article/details/82943135