Android 控制項(註冊對話方塊)

來源:互聯網
上載者:User

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><br /><RadioGroup android:layout_height="wrap_content" android:layout_width="match_parent" android:orientation="horizontal" android:id="@+id/sexselect"><br /><RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/RadioMan" android:text="@string/man" android:layout_marginLeft="10px"></RadioButton><br /><RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/women" android:layout_marginLeft="20px" android:id="@+id/Radiowomen"></RadioButton><br /></RadioGroup><br /></LinearLayout><br /> 

 

 

在使用者點擊了某個單選框之後,對事件進行處理。

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

下拉框(Spinner)

接著添加一個血型選擇的下拉框,讓使用者選擇血型。

在布局檔案中添加Spinner組建,然後通過ArrayAdapter和Spinner串連起來。一個Spinner控制項有兩種視圖。一種是未點擊狀態下,一種是點擊了,出現下拉條,讓使用者選擇。這兩種視圖分別通過ArrayAdapter的建構函式和ArrayAdapter的setDropDownViewResource方法來設定。

血型選擇xml屬性

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

 

代碼如下

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

DatePicker和TimePicker

DatePicker和TimePicker的使用方法一樣,我的測試程式中只使用的DatePicker來讓使用者選擇生日。

在layout中添加DatePicker組建。

代碼如下:

m_datePicker = (DatePicker)this.findViewById(R.id.Datebirthday);<br /> m_datePicker.init(1980, 5, 11, new DatePicker.OnDateChangedListener()<br /> {<br />public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth)<br />{<br />// 如果用於設定時間,可以調用Calendar的set方法<br />//Calendar.getInstance().set(year, monthOfYear, dayOfMonth);<br />DisplayToast("你的生日是 " + year +"年" + monthOfYear + "月" + dayOfMonth + "日");<br />}<br /> });<br /> 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.