Android 控件(注册对话框)

--学习笔记6(金海建)

目的:学习设计一个注册界面,来学习RadioGroup、RadioButton、Spinner、DatePicker、TimePicker这些控件的使用。

RadioGroup和RadioButton

一般情况下,我们会把某一组RadioButton做成一个单选。这种情况下,我们需要把RadioButton和RadioGroup结合使用。在布局的时候,需要把RadioButton作为RadioGroup的子控件。

新建一个工程,设计如下UI。

性别选择的布局文件

<LinearLayout android:id="@+id/LinearLayout02" android:layout_height="wrap_content" android:layout_width="match_parent"><TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/sex" android:text="@string/sex" android:layout_marginTop="10px"></TextView> <RadioGroup android:layout_height="wrap_content" android:layout_width="match_parent" android:orientation="horizontal" android:id="@+id/sexselect"> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/RadioMan" android:text="@string/man" android:layout_marginLeft="10px"></RadioButton> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/women" android:layout_marginLeft="20px" android:id="@+id/Radiowomen"></RadioButton> </RadioGroup> </LinearLayout>

在用户点击了某个单选框之后,对事件进行处理。

import android.widget.RadioGroup; import android.widget.RadioButton; import android.widget.Toast; public class UserReg extends Activity { RadioGroup m_sexselectGroup; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.userreg); m_sexselectGroup = (RadioGroup)this.findViewById(R.id.sexselect); m_sexselectGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { public void onCheckedChanged(RadioGroup group, int checkedid) { if(checkedid == R.id.RadioMan) { // do some thing } else if(checkedid == R.id.Radiowomen) { // do some thing } RadioButton sextype = (RadioButton)UserReg.this.findViewById(checkedid); DisplayToast("你的性别是:" + sextype.getText()); } }); } public void DisplayToast(String str) { Toast.makeText(this, str, Toast.LENGTH_SHORT).show(); } }

下拉框(Spinner)

接着添加一个血型选择的下拉框,让用户选择血型。

在布局文件中添加Spinner组建,然后通过ArrayAdapter和Spinner连接起来。一个Spinner控件有两种视图。一种是未点击状态下,一种是点击了,出现下拉条,让用户选择。这两种视图分别通过ArrayAdapter的构造函数和ArrayAdapter的setDropDownViewResource方法来设置。

血型选择xml属性

<LinearLayout android:id="@+id/LinearLayout03" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/bloodtype" android:text="@string/bloodtype"></TextView> <Spinner android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/Spinnerbloodtype"></Spinner> </LinearLayout>

代码如下

private static final String[] m_bloodtypes= {"O型", "A型", "B型", "AB型", "其他", "未知"}; private Spinner m_Spinner; private ArrayAdapter<String> m_adapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.userreg); m_Spinner = (Spinner)this.findViewById(R.id.Spinnerbloodtype); m_adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, m_bloodtypes); m_Spinner.setPromptId(R.string.selectblood); m_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); m_Spinner.setAdapter(m_adapter); m_Spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() { public void onItemSelected( AdapterView<?> parent, View view, int position, long id) { DisplayToast("你的血型是:" + m_bloodtypes[position]); } public void onNothingSelected(AdapterView<?> arg0) { } }); }

效果图:

DatePicker和TimePicker

DatePicker和TimePicker的使用方法一样,我的测试程序中只使用的DatePicker来让用户选择生日。

在layout中添加DatePicker组建。

代码如下:

m_datePicker = (DatePicker)this.findViewById(R.id.Datebirthday); m_datePicker.init(1980, 5, 11, new DatePicker.OnDateChangedListener() { public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) { // 如果用于设置时间,可以调用Calendar的set方法 //Calendar.getInstance().set(year, monthOfYear, dayOfMonth); DisplayToast("你的生日是 " + year +"年" + monthOfYear + "月" + dayOfMonth + "日"); } });

效果图:

更多相关文章

  1. android 中ListView的用法
  2. Android(安卓)setBackgroundResource()/setBackgroundDrawable()
  3. Android控件属性——是否可见和可点击
  4. 安卓控件之单选按钮 (RadioButton和RadioGroup)
  5. Google Play services SDK的安装
  6. android 实现点击输入框弹出日期选择对话框(DatePickerDialog)
  7. Android下拉刷新上拉载入控件,对全部View通用!
  8. android入门开发实例
  9. 关于WebVeiw的例子(一)

随机推荐

  1. Android实习生 —— 开发必须知道的事
  2. [Android] 彻底了解Binder机制原理和底层
  3. Android和Django服务器传输json数据
  4. Unity导出android工程集成到android stud
  5. Android(安卓)Multidex导致的App启动缓慢
  6. Android绘图基本用法Demo
  7. Android(安卓)Binder实现浅析-Binder驱动
  8. Android原生(Native)C开发之二 framebuff
  9. Android使用WebView加载文字总结之中文乱
  10. adb、sqlite3在命令行下访问应用数据库