Board logo

标题: 使用 Android 和 XML 构建动态用户界面(9) [打印本页]

作者: look_w    时间: 2018-9-19 20:25     标题: 使用 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 询问油量变化既然用户可以在表单中输入数据了,现在可以验证并提交数据了。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0