Android日期选择及下拉列表Spinner控件的使用

很多安卓应用都有日期选择以及下拉列表的功能,具体就是下面图示的效果
Android日期选择及下拉列表Spinner控件的使用_第1张图片Android日期选择及下拉列表Spinner控件的使用_第2张图片Android日期选择及下拉列表Spinner控件的使用_第3张图片
具体代码实现如下
先写布局文件xml,style就不一一列举了,根据自己的需求写就好




    
        
    
    
        
        
        
        
    
    
        
        
        
        
    
    
        

接下来是activity具体实现
我是在继承Fragment的类写的,所以写在onCreateView方法里,如果是在继承AppCompatActivity的类中,则直接写在onCreate方法里就好。区别就是onCreateView中的findViewById前需要加上你定义的View,在使用 适配器ArrayAdapter时第一个参数不能用this,而要用getActivity(),这个很重要,我纠结了好久才解决。

 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.addfragment, container, false);
        et_date=(EditText)rootView.findViewById(R.id.et_date);
        et_money=(EditText)rootView.findViewById(R.id.et_money);
        et_text=(EditText)rootView.findViewById(R.id.et_text);
        btn_add=(Button)rootView.findViewById(R.id.btn_add);
        btn_cancel=(Button)rootView.findViewById(R.id.btn_concel);
        dbOpenHelper=new MyDBOpenHelper(getActivity().getApplicationContext());
        //设置选择日期
        dateFormatter = new SimpleDateFormat("MM月dd日");//这里可以设置日期的格式,如果是年月日则改为yyyy年MM月dd日
        createDate= Calendar.getInstance();
        createDate.setTimeInMillis(System.currentTimeMillis());
        et_date.setText(dateFormatter.format(new Date(createDate.getTimeInMillis())));//把当前系统日期显示在TextView中,如果需要不显示注释掉即可
        et_date.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener() {
                    @Override
                    public void onDateSet(DatePicker datePicker, int year, int month, int day) {
                        createDate.set(year, month, day);
                        et_date.setText(dateFormatter.format(new Date(createDate.getTimeInMillis())));
                    }
                }, createDate.get(Calendar.YEAR), createDate.get(Calendar.MONTH), createDate.get(Calendar.DAY_OF_MONTH))
                        .show();
            }
        });

        List list = new ArrayList();
        list.add("零花");
        list.add("吃饭");
        list.add("日常");
        list.add("学习");
        list.add("饭卡");
        //第一项也就是显示的为零花,如果不设置初始值,则第一项可直接设置为空list.add("");或者是常用的list.add("请选择类型");
        ArrayAdapter adapter=new ArrayAdapter(getActivity(), android.R.layout.simple_spinner_item,list);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        final Spinner sp=(Spinner)rootView.findViewById(R.id.spinner1);
        sp.setAdapter(adapter);

获取下拉列表框选中的值,我常用的方法如下,提取出选中项内容后就可以根据activity所需做相应处理了。

Spring spr=sp.getSelectedItem().toString();

你可能感兴趣的:(Android)