使用 Android 和 XML 构建动态用户界面(9)
 
- UID
- 1066743
|

使用 Android 和 XML 构建动态用户界面(9)
展示了 XmlGuiPickOne 类的代码。
清单 10. XmlGuiPickOne 类1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| package com.msi.ibm;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Spinner;
import android.widget.ArrayAdapter;
public class XmlGuiPickOne extends LinearLayout {
String tag = XmlGuiPickOne.class.getName();
TextView label;
ArrayAdapter<String> aa;
Spinner spinner;
public XmlGuiPickOne(Context context,String labelText,String options) {
super(context);
label = new TextView(context);
label.setText(labelText);
spinner = new Spinner(context);
String []opts = options.split("\\|");
aa = new ArrayAdapter<String>( context,
android.R.layout.simple_spinner_item,opts);
spinner.setAdapter(aa);
this.addView(label);
this.addView(spinner);
}
public XmlGuiPickOne(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public String getValue()
{
return (String) spinner.getSelectedItem().toString();
}
}
|
这个类看起来非常类似于 XmlGuiEditBox 类,主要区别在于它采用了一个 Spinner 控件而不是一个 EditText 控件。还要注意,这个类只实现了 getValue() 方法。这个类的一个明显增强是允许用户指定一个默认值。
注意,我们使用了 options 成员来填充选项列表。在这段代码中,我们使用一个 regex 表达式将包含可用选项的 String 分割为一个数组,然后将其传递给 ArrayAdapter 的一个实例。常量 android.R.layout.simple_spinner_item 被内置到 Android 中,而不是在本教程的应用程序代码中提供。这个适配器设置好后,就被分配给这个 Spinner。 展示了屏幕上显示的选项列表提示用户,典型的是油量变化与英里数。
图 13. XmlGuiPickOne 询问油量变化 既然用户可以在表单中输入数据了,现在可以验证并提交数据了。 |
|
|
|
|
|