Android中,也可以通过组件实现HTML表单中的各种功能,但这里不包含隐藏域的组件,因为没有必要。

常用的表单组件中,比较复杂的是选择类的组件,这里可以使用以下的组件实现:单选,多选,下拉列表,日期选择,时间选择的功能。

一、单选,多选:

                            

单选应该还支持默认选中功能。

但要注意,这样写有bug,如果写上为true,则永远无法再进行切换,一直为true

因此建议在程序中进行默认选中的设置。

RadioGroup        android:id="@+id/radio"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="vertical" >
public class MainActivity extends Activity {private RadioGroup radio;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 设置所使用的布局界面setContentView(R.layout.activity_main);radio = (RadioGroup) findViewById(R.id.radio);// 可以通过check()方法来设置选中某一个单选,但要传递该单选按钮的id值.// 如果为每个单选按钮设置id, 比较麻烦,因此这里通过 按钮的position下标,直接取得按钮,再通过getId()取得id值来设置.radio.check(radio.getChildAt(0).getId());}}

如果选项不是写死的形式,而是通过传递的集合数据动态生成的,可以通过程序来进行选项的建立。

public class MainActivity extends Activity {private RadioGroup radio;private String[] allValues = { "男", "女", "未知" };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 设置所使用的布局界面setContentView(R.layout.activity_main);radio = (RadioGroup) findViewById(R.id.radio);// 可以通过check()方法来设置选中某一个单选,但要传递该单选按钮的id值.// 如果为每个单选按钮设置id, 比较麻烦,因此这里通过 按钮的position下标,直接取得按钮,再通过getId()取得id值来设置.// radio.check(radio.getChildAt(0).getId());// 动态为单选按钮组加入选项// 循环数组或集合,建立单选按钮for (int i = 0; i < allValues.length; i++) {RadioButton button = new RadioButton(this);button.setText(allValues[i]);button.setTextColor(Color.BLACK);radio.addView(button);}}}

多选框使用方法与单选基本相同,只不过换成CheckBox

这里没有CheckBoxGroup,可以直接使用LinearLayout替代之前的RadioGroup

                                            

二、Spinner下拉列表

下拉列表中的数据不能直接加入,可以通过XML来进行固定的配置,或使用Adpater来动态加入。

写死的数据,可以打开values.xml,来加入一段配置。

//这里的@array的数据就是在strngs.xml中声明的String Array数组

如果想动态生成数据,也要通过程序完成,需要建立一个ArrayAdapter的类,来转换传入的List集合或String[]数据。

// 取得Spinner组件spinner = (Spinner) findViewById(R.id.spinner);// 根据数据,建立适配器adapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item, allAreaValues);// 设置选项弹出后的显示样式adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);spinner.setAdapter(adapter);


//如果不想使用系统自带的显示样式,也可以自己在res/layout中声明一个自定义的TextView的样式。

// 根据数据,建立适配器adapter = new ArrayAdapter(this,R.layout.my_spinner_item, allAreaValues);

三、日期时间选择器、滚动面板

日期选择器的设置

    

但这时,内容已经超出了屏幕范围,因此需要加入一个滚动面版,来实现屏幕滚动的功能。

滚动面版中要求只能有一个子节点。

因此这里要将滚动面版ScrollView加入到最外面,作为根节点来使用

    

同时,里面的LinearLayout的高度,必须设置成为wrap_content

如果想使用水平滚动支持,可以加入水平滚动面版

还可以取消滚动条的显示

android:scrollbars="none" >

时间选择也可以通过TimePicker来实现。

更多相关文章

  1. iOS和Android规范解析——警告框(Alerts)对比
  2. Android(安卓)- ImageButton单击切换按钮图片效果的实现
  3. Android(安卓)Activity背景半透明设置方法
  4. Android切近实战(四)
  5. Android(安卓)studio开发APP时设置更改启动时的主界面程序
  6. 总结Android(安卓)App内存优化之图片优化
  7. 第三部分:Android(安卓)应用程序接口指南---第二节:UI---第二章 输
  8. 解析Android(安卓)Studio创建的第一个Android(安卓)TV项目
  9. Android之代码写布局

随机推荐

  1. Android(安卓)效率开发之图片---Glide 旋
  2. Android(安卓)利用重力感应调整手机模式
  3. 酒浓码浓 - ios/android微信浏览器video
  4. Android自定义控件实现滑动开关效果
  5. Android(安卓)中 byte类型数据大于0x7F时
  6. 【Android(安卓)控件架构】详解Android控
  7. Android的dex热修复的实现基本原理
  8. Android中内存泄露的原因分析:
  9. 《Android(安卓)Studio开发实战 从零基础
  10. eclipse android 迁移到android studio3.