android下拉列表框Spinner

  展示下拉框的内容有两种方式,一是entries属性,写在xml文件当中,二是使用适配器。

-------entries属性实现--------
在values下new–>xml–>values xml files创建数组资源文件



    
    
        全部
        电影
        娱乐
        吃喝玩乐
    



     android:entries="@array/ctype"


----------适配器方式------------
.xml文件



activity函数


public class MainActivity extends AppCompatActivity {

    String[] ctype=new String[]{"全部","电影","娱乐","吃喝玩乐"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
;
        //构造适配器,选择三个参数的,(上下文环境,布局格式,数组)
        final ArrayAdapter arrayAdapter=new ArrayAdapter
                                (MainActivity.this,android.R.layout.simple_spinner_item,ctype);
        arrayAdapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
        Spinner spinner=findViewById(R.id.spinner);
        spinner.setAdapter(arrayAdapter);
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            /**
             *
             * @param adapterView 触发当前事件的spinner对象
             * @param view 表示当前选中的item
             * @param position 当前被选中的item的下标
             * @param id 表示当前被选择item的id
             */
            @Override
            public void onItemSelected(AdapterView adapterView, View view, int position, long id) {
                String result1= ctype[position];//在数组中获得
                String result2=arrayAdapter.getItem(position);//在适配器获取
                String result3=adapterView.getItemAtPosition(position).toString();//从spinner获取
                Toast.makeText(MainActivity.this,"result1"+result1+"result2"+result2+"result3"+result3,Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onNothingSelected(AdapterView adapterView) {

            }
        });
    }
}

你可能感兴趣的:(Android,Studio)