Android中的常用控件

一、程序目的

展示和使用Android中的各种常用控件,其中的TextView和Button由于,以前例子中经常用就不举例子。

TextView:文本框,相当于JavaGUI中的TextField

Button:按钮

二、例子效果图
Android中的常用控件Android中的常用控件


Android中的常用控件Android中的常用控件

三、代码编写

1.CheckBox和RadioButton(RadioGroup)

raido.xml,注意:RadioGroup包裹RadioButton

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent"><TextView android:id="@+id/textView1" android:layout_width="fill_parent"android:layout_height="wrap_content" android:text="@string/hello" /><RadioGroup android:id="@+id/genderGroup"android:layout_width="wrap_content" android:layout_height="wrap_content"android:orientation="vertical"><RadioButton android:id="@+id/femaleButton"android:layout_width="wrap_content" android:layout_height="wrap_content"android:text="@string/female" /><RadioButton android:id="@+id/maleButton"android:layout_width="wrap_content" android:layout_height="wrap_content"android:text="@string/male" /></RadioGroup><CheckBox android:id="@+id/swim" android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="@string/swim" /><CheckBox android:id="@+id/run" android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="@string/run" /><CheckBox android:id="@+id/read" android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="@string/read" /></LinearLayout>

对应Activity代码片段

//为RadioGroup设置监听器,需要注意的是,这里的监听器和Button控件的监听器有所不同        genderGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {if(femaleButton.getId() == checkedId){System.out.println("famale");Toast.makeText(Component.this, "famle", Toast.LENGTH_SHORT).show();//小提示框}else if(maleButton.getId() == checkedId){System.out.println("male");}}});                //为多选按钮添加监听器        swimBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {if(isChecked){System.out.println("swim is checked");}else{System.out.println("swim is unchecked");}}});

2.进度条ProgressBar

layout中的xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent"><!-- style:指定进度条的类型,其中progressBarStyleHorizontal 水平进度条progressBarStyle:旋转的进度条android:visibility:设置控件当前的可视情况:gone看不到--><ProgressBarandroid:id="@+id/firstProgressBar"style="?android:attr/progressBarStyleHorizontal"android:layout_width="200dp"android:layout_height="wrap_content"android:visibility="gone"></ProgressBar><ProgressBarandroid:id="@+id/secondProgressBar"style="?android:attr/progressBarStyle"android:layout_width="wrap_content"android:layout_height="wrap_content"android:visibility="gone"android:max="200"></ProgressBar><Buttonandroid:id="@+id/myButton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/go"></Button></LinearLayout>

对应Activity代码片段

 class BtnListener implements OnClickListener{        int i=0;@Overridepublic void onClick(View arg0) {if(i==0){firstProgressBar.setVisibility(View.VISIBLE);secondProgressBar.setVisibility(View.VISIBLE);}else if(i<firstProgressBar.getMax()){firstProgressBar.setProgress(i);firstProgressBar.setSecondaryProgress(i+10);secondProgressBar.setProgress(i);}else{firstProgressBar.setVisibility(View.GONE);secondProgressBar.setVisibility(View.GONE);}i=i+10;}        }

3.ListView: 官方文档中的demo

layout中的xml

<?xml version="1.0" encoding="utf-8"?><TextView xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:padding="10dp"    android:textSize="16sp" ></TextView>

对应的Activity

package linys.component;import android.app.ListActivity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;public class HelloListView extends ListActivity  { static final String[] COUNTRIES = new String[] {    "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra",    "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina",    "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan",    "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium",    "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia",    "Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil", "British Indian Ocean Territory",    "British Virgin Islands", "Brunei", "Bulgaria", "Burkina Faso", "Burundi",    "Cote d'Ivoire", "Cambodia", "Cameroon", "Canada", "Cape Verde",    "Cayman Islands", "Central African Republic", "Chad", "Chile", "China",    "Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros", "Congo",    "Cook Islands", "Costa Rica", "Croatia", "Cuba", "Cyprus", "Czech Republic",    "Democratic Republic of the Congo", "Denmark", "Djibouti", "Dominica", "Dominican Republic",    "East Timor", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea",    "Estonia", "Ethiopia", "Faeroe Islands", "Falkland Islands", "Fiji", "Finland",    "Former Yugoslav Republic of Macedonia", "France", "French Guiana", "French Polynesia",    "French Southern Territories", "Gabon", "Georgia", "Germany", "Ghana", "Gibraltar",    "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guinea", "Guinea-Bissau",    "Guyana", "Haiti", "Heard Island and McDonald Islands", "Honduras", "Hong Kong", "Hungary",    "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", "Italy", "Jamaica",    "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Kuwait", "Kyrgyzstan", "Laos",    "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg",    "Macau", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands",    "Martinique", "Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia", "Moldova",    "Monaco", "Mongolia", "Montserrat", "Morocco", "Mozambique", "Myanmar", "Namibia",    "Nauru", "Nepal", "Netherlands", "Netherlands Antilles", "New Caledonia", "New Zealand",    "Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "North Korea", "Northern Marianas",    "Norway", "Oman", "Pakistan", "Palau", "Panama", "Papua New Guinea", "Paraguay", "Peru",    "Philippines", "Pitcairn Islands", "Poland", "Portugal", "Puerto Rico", "Qatar",    "Reunion", "Romania", "Russia", "Rwanda", "Sqo Tome and Principe", "Saint Helena",    "Saint Kitts and Nevis", "Saint Lucia", "Saint Pierre and Miquelon",    "Saint Vincent and the Grenadines", "Samoa", "San Marino", "Saudi Arabia", "Senegal",    "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "Solomon Islands",    "Somalia", "South Africa", "South Georgia and the South Sandwich Islands", "South Korea",    "Spain", "Sri Lanka", "Sudan", "Suriname", "Svalbard and Jan Mayen", "Swaziland", "Sweden",    "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "The Bahamas",    "The Gambia", "Togo", "Tokelau", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey",    "Turkmenistan", "Turks and Caicos Islands", "Tuvalu", "Virgin Islands", "Uganda",    "Ukraine", "United Arab Emirates", "United Kingdom",    "United States", "United States Minor Outlying Islands", "Uruguay", "Uzbekistan",    "Vanuatu", "Vatican City", "Venezuela", "Vietnam", "Wallis and Futuna", "Western Sahara",    "Yemen", "Yugoslavia", "Zambia", "Zimbabwe"  };@Overridepublic void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  String[] countries = getResources().getStringArray(R.array.countries_array);//从values/strings.xml中取得定义的String数组  setListAdapter(new ArrayAdapter<String>(this, R.layout.listview, countries));  //使用代码中定义的String数组//  setListAdapter(new ArrayAdapter<String>(this, R.layout.listview, COUNTRIES));  ListView lv = getListView();  lv.setTextFilterEnabled(true);  //往ListView中添加项点击监听时间  lv.setOnItemClickListener(new OnItemClickListener() {    public void onItemClick(AdapterView<?> parent, View view,        int position, long id) {      // When clicked, show a toast with the TextView text      Toast.makeText(getApplicationContext(), ((TextView) view).getText(),          Toast.LENGTH_SHORT).show();    }  });}}

values/strings.xml片段

<string-array name="countries_array">        <item>Bahrain</item>        <item>Bangladesh</item>        <item>Barbados</item>        <item>Belarus</item>        <item>Belgium</item>        <item>Belize</item>        <item>Benin</item>    </string-array>

自定义的ListView例子

layout中的xml

main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    >    <ListView     android:id="@id/android:list"     android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:scrollbars="vertical"    >    </ListView>    <!--android:scrollbars 添加滚动条 --></LinearLayout>

user.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="horizontal"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    >   <TextView    android:id="@+id/username"     android:layout_width="180dip"     android:layout_height="30dip"   />   <TextView     android:id="@+id/password"     android:layout_width="fill_parent"     android:layout_height="fill_parent"     android:gravity="right"   />   <!-- android:gravity 设置重心的位置在这里是把password放在username的右边二者在同一行 --></LinearLayout>

对应的Activity

package linys.views;import java.util.ArrayList;import java.util.HashMap;import java.util.Map;import android.app.ListActivity;import android.os.Bundle;import android.view.View;import android.widget.SimpleAdapter;import android.widget.Toast;/** *  * @Project: Android_ListView * @Desciption:  * 本Activity继承ListActivity * @Author: LinYiSong * @Date: 2011-3-25~2011-3-25 */public class ListView extends ListActivity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        /*         *          *显示的数据         *ListView可以看作是不显示字段名得一张表         *字段名为map中的key         *每行的数据用Map存放         */                ArrayList<Map<String,String>> list=new ArrayList<Map<String,String>>();        //Map中存放的是ListView中每一行的值        Map<String,String> map=new HashMap<String,String>();        Map<String,String> map1=new HashMap<String,String>();        map.put("username","linys");        map.put("passwd", "linys");                map1.put("username","wang");        map1.put("passwd", "wang");                list.add(map);        list.add(map1);                /**         * 为ListView筛选值         * R.layout.user指定的是在res/layout中指定的数据每行数据展示的布局         * new String[]{"username","passwd"}:选取Map中的key,作为表格的字段         * new int[]{R.id.username,R.id.password}:user与字段对应的控件名         */        SimpleAdapter adapter=new SimpleAdapter(this,list,R.layout.user,new String[]{"username","passwd"},new int[]{R.id.username,R.id.password});        this.setListAdapter(adapter);            }    /**     * override onListItemClick添加项点击事件     */@Overrideprotected void onListItemClick(android.widget.ListView l, View v,int position, long id) {super.onListItemClick(l, v, position, id);/* * 从ListView的Adapter中取得所选的项 * CharSequence 相当于String */CharSequence text = l.getAdapter().getItem(position)+"";int duration = Toast.LENGTH_SHORT;Toast toast = Toast.makeText(this, text, duration);toast.show();}}

更多相关文章

  1. 系出名门Android(8) - 控件(View)之TextSwitcher, Gallery...
  2. 【Android UI控件】EditText属性大全,TextView属性大全
  3. Android 控件使用之SlidingDrawer
  4. Android利用drawable文件夹自定义控件背景、样式
  5. android控件布局
  6. 2.3.1TextView控件
  7. 【Android】如何让跑马灯跑起来-控件请求焦点
  8. Android控件GridView的使用
  9. android 相对布局中的 控件布局

随机推荐

  1. Android兼容性测试框架(CTS)手册
  2. 让低版本的 Android(安卓)项目显示出 Mat
  3. 从源码角度一步步分析AsyncTask的用法与
  4. [转】:Android生命周期
  5. Android开发者必知的开发资源(转载)
  6. Android的MediaRecorder架构介绍
  7. Android ListView元素间隙线自定义渐变效
  8. Android(安卓)动画 Kotlin 教程
  9. Universal-Image-Loader(android图片缓存)
  10. android 模拟器命令