android日期支持单选,Android表单组件,单选,多选,下拉列表,日期选择,时间选择...

在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;

@Override

protected 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 = { "男", "女", "未知" };

@Override

protected 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。

05fac741f1c11bb6379bbf4869acdab6.png

二、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);

199fdd3b17110b6b20204d5a4bf2a7a0.png

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

日期选择器的设置

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

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

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

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

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

还可以取消滚动条的显示

android:scrollbars="none" >

144990c5cc56f6565c8e91d5f207d63a.png

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值