`

Android中的常用控件

阅读更多

Android中的常用控件

一、程序目的

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

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

Button:按钮

二、例子效果图


 三、代码编写

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() {
			
			@Override
			public 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() {
			
			@Override
			public 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看不到
	-->
	<ProgressBar
	android:id="@+id/firstProgressBar"
		style="?android:attr/progressBarStyleHorizontal"
		android:layout_width="200dp"
		android:layout_height="wrap_content"
		android:visibility="gone"
	></ProgressBar>
	<ProgressBar
	android:id="@+id/secondProgressBar"
		style="?android:attr/progressBarStyle"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:visibility="gone"
		android:max="200"
	></ProgressBar>
	<Button
		android: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;

		@Override
		public 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"
		  };
	
	@Override
	public 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添加项点击事件
     */
	@Override
	protected 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();
	}
}
 

 

 

 

 

 

 

 

  • 大小: 14.5 KB
  • 大小: 14.6 KB
  • 大小: 19.4 KB
  • 大小: 13.1 KB
分享到:
评论

相关推荐

    Android UI控件组件库集合【源码】

    这个"Android UI控件组件库集合【源码】"提供了多种常用的UI控件及其源代码,旨在帮助开发者构建更加美观、功能丰富的应用界面。下面我们将详细探讨这些控件以及它们在实际开发中的应用。 1. **流式布局...

    Android 流程步骤控件

    在Android开发中,流程步骤控件是一种常用的UI组件,它能清晰地展示用户操作的步骤序列,特别是在涉及多步骤的提交或验证过程中。本篇文章将深入探讨如何在Android中实现这样的控件,以及其在实际应用中的设计和使用...

    Android各种常用控件实例程序集合

    在Android开发中,掌握各种常用控件的使用是至关重要的,因为这些控件构成了用户界面的基础,直接影响到应用的交互性和用户体验。"Android各种常用控件实例程序集合"是一个宝贵的资源,它提供了丰富的实例,帮助...

    老罗Android开发视频教程-Android常用UI控件编程【32集】

    教程名称: 老罗Android开发视频教程-Android常用UI控件编程【32集】【】Android常用UI控件编程第七集【】Android常用UI控件编程第二十三集【】Android常用UI控件编程第二十九集【】Android常用UI控件编程第二十二...

    Android常用基本控件

    ### Android常用基本控件 #### 一、文本控件(TextView和EditText) **1.1 TextView控件** - **简介**:`TextView`是Android中最基础的文本显示控件,用于展示不可编辑的文字内容。 - **特点**: - 继承自`View`...

    android常用控件总结大全

    Android 中的控件是构建用户界面的基础组件,掌握这些控件的使用是开发 Android 应用程序的必备技能。下面将对 Android 中常用的控件进行总结,包括它们的事件监听和使用方法。 1.1 Src 文件夹和 Res 文件夹 在 ...

    Android中的常用控件及其基本用法

    Android中的常用控件及其基本用法 TextView的使用方法 EditText的使用方法 Button的使用方法 Menu的使用方法 RadioGroup和RadioButton

    android 日期区间选择控件

    在Android开发中,日期区间选择控件是一种常用的用户界面组件,尤其在预订系统、日程管理等场景下不可或缺。本文将深入探讨如何实现一个能够选取年月区间的自定义控件,以及涉及到的相关技术点。 首先,我们需要...

    android常用系统控件

    在Android开发中,系统控件是构建用户界面的基础元素,它们提供了与用户交互的...总之,理解并熟练运用这些Android常用系统控件是开发高质量应用的基础,开发者可以根据需求灵活组合和定制,创造出各种各样的界面效果。

    Android中常见控件的介绍和使用.pdf

    在Android开发中,控件是构成界面的基本元素。初学者通过掌握一些常用控件的使用方法,能够快速构建出功能丰富的用户界面。本篇文章将重点介绍Android中一些常见的控件,尤其是TextView文本框的使用。 ### TextView...

    android常用控件大全讲解

    在Android开发中,掌握常用的控件是至关重要的。本文将详细介绍Android中常见的控件及其使用方式,同时也会涉及一些Android项目的基本结构和配置文件。首先,我们来看看Android项目的目录结构。 1. **项目目录结构*...

    Android中常用的控件Demo

    本示例“Android中常用的控件Demo”主要聚焦于四个关键控件:垂直和水平自定义SeekBar、Animation、ExpandableListView以及RatingBar,旨在帮助初学者掌握这些常用组件的用法。 首先,SeekBar是一种滑动条控件,...

    Android开发 - 常用控件

    这篇博客"Android开发 - 常用控件"可能详细介绍了Android开发中的一些核心控件及其使用方法。由于没有直接提供博客的具体内容,我将根据Android开发中常见的控件类型和相关知识点进行阐述。 1. **按钮(Button)**:...

    android常用控件与系统函数

    首先,"Android常用控件介绍.pdf"与"Android常用控件大全"系列文档,详细讲解了Android平台上常见的UI组件,如Button(按钮)、EditText(文本输入框)、TextView(文本显示)、ImageView(图像视图)、ListView...

    Android中常见控件的介绍和使用

    ### Android中常见控件的介绍和使用 #### TextView 文本框 **1.1 TextView 类的结构** `TextView` 是Android开发中极为重要的一个控件,主要用于显示文本内容。它是继承自 `View` 类的一个子类,即 `android....

    android常用UI控件的使用例子

    这篇博文“android常用UI控件的使用例子”可能会深入探讨一些常见的Android UI组件及其用法,帮助开发者更好地理解和应用这些控件。由于没有具体的博文内容,我将根据一般知识和经验,详细介绍一些Android开发中的...

    Android UI常用组件

    该资源是对Android 常用的UI组件进行详细讲解

    android常用控件demo

    "android常用控件demo"是一个适合初学者理解Android UI设计的简单示例项目,尤其对于大学学习者而言,这是一个很好的实践资源。在这个项目中,开发者可能会遇到各种常见的Android控件及其用法。 1. **TextView**:...

    学习:Android常用控件

    这篇博客"学习:Android常用控件"可能涵盖了Android SDK中的一些核心组件,这些组件是开发者构建用户界面不可或缺的部分。博客可能详细介绍了如何使用、自定义以及优化这些控件以提升用户体验。 首先,Android的...

Global site tag (gtag.js) - Google Analytics