`
suuu
  • 浏览: 16945 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Android学习笔记(四)CheckBox、RadioGroup、ProgressBar、ListView、Spinner

 
阅读更多

一、多选按钮-CheckBox

用法:首先也是通过控件ID来得到代表控件的对象,然后为其添加监听器。

设置监听器代码:

 

      //为多选按钮添加监听器
        swim.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
			
			@Override
			public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
				// TODO Auto-generated method stub
				if(isChecked)
				{
					System.out.println("swim is checked");

				}
				else
				{
					System.out.println("swim is unchecked");
				}
			}
		});
 

 其中,swimBox是CompoundButton的子类,所以他可以向上转型为CompoundButton的类型,将参数传进。

 

 

 

 

二、单选按钮-RadioGroup

用法:同CheckBox

设置监听器代码:

 

        	//单选按钮监听器
            

			@Override
			public void onCheckedChanged(RadioGroup group, int checkedId) {
				// TODO Auto-generated method stub
	      		if(female.getId()== checkedId){
        			System.out.println("你是女的");
        			Toast.makeText(checkRadio.this, "女", Toast.LENGTH_SHORT).show();
        			/**Toast用于选择时弹出提示*/
        			}else if (gender.getId()== checkedId)
        			{
        				System.out.println("你是男的");
        				Toast.makeText(checkRadio.this, "男", Toast.LENGTH_SHORT).show();
        			}
			}
        });
 

 

 

 

 

 

 

 

 

 

 

 

三、进度条-ProgressBar

.xml文件中定义如下:水平进度条

 

<ProgressBar
	android:id="@+id/firstBar"
	style="?android:attr/progressBarStyleHorizontal"
	android:layout_width="200dp"
	android:layout_height="wrap_content"
	android:visibility="gone"/是否可视的状态,gone是不可视的 


/>
 

 默认的进度条最大值是100,如上例子,若想进度条自定义,则用:android:max="xxx"即可,也可以在代码里面设置。如:下面例子中!

 

 

Activity中实现进度条:

 

package mars.progressbar;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ProgressBar;

public class ProgressBarTest extends Activity {
    /** Called when the activity is first created. */
	//声明变量
	private ProgressBar firstBar =null;
	private ProgressBar secondBar = null;
	private Button myButton = null;
	private int i = 0 ;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //根据控件的ID来取得代表控件的对象
        firstBar = (ProgressBar)findViewById(R.id.firstBar);
        secondBar = (ProgressBar)findViewById(R.id.secondBar);
        myButton = (Button)findViewById(R.id.myButton);
        myButton.setOnClickListener(new ButtonListener());
    }
    class ButtonListener implements OnClickListener{
    	
		@Override
		public void onClick(View v) {
			if(i == 0)
			{
				//设置进度条处于可见的状态
				firstBar.setVisibility(View.VISIBLE);
				firstBar.setMax(150);
				secondBar.setVisibility(View.VISIBLE);
				
			}
			else if ( i < firstBar.getMax()){//获得获得进度条的最大值
				//设置主进度条的当前值
				firstBar.setProgress(i);
				//设置第二进度条的当前值
				firstBar.setSecondaryProgress(i + 10);
				//因为默认的进度条无法显示进行的状态
				secondBar.setProgress(i);
				
			}
			else{
				//设置进度条处于不可见状态
				firstBar.setVisibility(View.GONE);
				secondBar.setVisibility(View.GONE);
			}
			i = i + 10 ;
		}
    	
    }
    
}
 

 

 


 

四、列表-ListView

 

列表实现的不是Activity,而是ListActivity。

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">
<LinearLayout 
			android:id="@+id/listLinearLayout"
			android:layout_width="fill_parent" 
			android:layout_height="wrap_content"
			android:orientation="vertical">
<ListView 
			android:id="@id/android:list" 
			android:layout_width="fill_parent"
			android:layout_height="wrap_content" 
			android:drawSelectorOnTop="true"
			android:scrollbars="vertical" />
	</LinearLayout>
</LinearLayout>

user.xml:

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
			xmlns:android="http://schemas.android.com/apk/res/android"
			android:layout_width="fill_parent" 
			android:layout_height="fill_parent"
			android:orientation="horizontal" 
			android:paddingLeft="10dip"
			android:paddingRight="10dip" 
			android:paddingTop="1dip"
			android:paddingBottom="1dip">
<TextView 
			android:id="@+id/user_name" 
			android:layout_width="180dip"
			android:layout_height="30dip" 
			android:textSize="5pt"
			android:singleLine="true" />
<TextView 
			android:id="@+id/user_ip" 
			android:layout_width="fill_parent"
			android:layout_height="fill_parent" 
			android:gravity="right"
			android:textSize="5pt" />
</LinearLayout>

Activity代码:

 

public class Activity01 extends ListActivity {
	/**继承于ListActivity类*/
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
		HashMap<String, String> map1 = new HashMap<String, String>();
		HashMap<String, String> map2 = new HashMap<String, String>();
		HashMap<String, String> map3 = new HashMap<String, String>();
		map1.put("user_name", "zhangsan");
		map1.put("user_ip", "192.168.0.1");
		map2.put("user_name", "zhangsan");
		map2.put("user_ip", "192.168.0.2");
		map3.put("user_name", "wangwu");
		map3.put("user_ip", "192.168.0.3");
		list.add(map1);
		list.add(map2);
		list.add(map3);
		MyAdapter listAdapter = new MyAdapter(this, 
				list,R.layout.user, new String[] { "user_name", "user_ip" },
				new int[] { R.id.user_name,R.id.user_ip});
		/**this即为当前这个ListActivity的对象,
		 * list关键字,将鼠标放在list上可看到ArrayList<HashMap<String, String>> list
		 * 表示为:首先它是一个ArrayList,里面放上HashMap,HashMap里又放上2个String对象
		 * R.id.uder_name是布局文件,后面一长串是数组,最后那长串是控制显示在列表中的控件布局
		 * user_name和user_ip是对应在HashMap里面的列,最后的new int[]则是对应在列中的值*/
		setListAdapter(listAdapter);
	}
}
MyAdapter是自定义方法,MyAdapter:
package mars.listview;

import java.util.List;
import java.util.Map;

import android.R.color;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.SimpleAdapter;

public class MyAdapter extends SimpleAdapter {
	private LayoutInflater inflater = null;
	private List<Map<String,Object>> styles = null;
	public List<Map<String, Object>> getStyles() {
		return styles;
	}

	public void setStyles(List<Map<String, Object>> styles) {
		this.styles = styles;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		// TODO Auto-generated method stub
		View result = super.getView(position, convertView, parent);
		System.out.println("positon---->" + position);
		if(result != null){
			inflater.inflate(R.layout.user1, null);
		}
		return result;
	}

	public MyAdapter(Context context, List<? extends Map<String, ?>> data,
			int resource, String[] from, int[] to) {
		super(context, data, resource, from, to);
		inflater = LayoutInflater.from(context);
	}

}
 
五、Spinnner
		 Spinner s1 = (Spinner) findViewById(R.id.Sp_Button_ChangeRoom);
		
		//下拉列表选择桌位号或者包厢号
        
        //将可选内容与ArrayAdapter连接
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.SP_ChangeRoom, android.R.layout.simple_spinner_item);
        
        //设置下拉列表风格
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        
        //将adapter添加到s1中 
        s1.setAdapter(adapter);
        //添加Spinner事件监听
        s1.setOnItemSelectedListener(new OnItemSelectedListener() {
        	        /** 第一个参数  是适配器 <?>是适配器里内容的类型,可把?改成你存的类型.
        	         *  第二个参数 是你当前选择的view
        	         *  第三个参数 是你所选项在适配器中的索引位置 
        	         *  第四个参数 选定项目的行数 
        	        */
                    public void onItemSelected(
                            AdapterView<?> parent, View view, int position, long id) {
                    	if(id>4){
                        showToast(id+1+"号包厢");
                    }else{
                    	showToast(id+1+"号桌");
                    }
                    
                }

					@Override
					public void onNothingSelected(AdapterView<?> arg0) {
						// TODO Auto-generated method stub
						showToast("没有选择桌号或者包厢号");
						
					}
					});
        }
        
	
	private void showToast(CharSequence msg) {
        Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
 
分享到:
评论

相关推荐

    刚开始学习android笔记,和一些控件的整理

    在开始学习Android开发时,首先要了解的是一个基本的Android应用是如何构建的。一个典型的Android应用由多个`Activity`组成,每个`Activity`代表了一个屏幕界面。下面是一些关于`Activity`的基本要点: 1. **创建一...

    android基础控件使用

    在Android开发中,基础控件是构建用户界面(UI)的核心元素。这些控件使得开发者能够创建各种交互式和功能丰富的应用。以下是一些主要的Android基础控件及其使用方法的详细说明: 1. **按钮(Button)** - `Button`...

    android 基础控件大全 二维码 6.0权限获取应有尽有

    1 基础控件的使用(CheckBox,RadioButton,RadioGroup,ToggleButton,CheckedTextView,ProgressBar,SeekBar,RatingBar,时间控件,EditText,WebView,ListView,RecyclerView,ExpandableListView,Spinner); 2 二维码 ...

    Android程序研发源码Android 多种android控件的Demo.rar

    常见的Android控件包括按钮(Button)、文本框(EditText)、单选按钮(RadioButton)、复选框(CheckBox)、图像视图(ImageView)、进度条(ProgressBar)、列表视图(ListView)、网格视图(GridView)、滑动选择...

    android开发揭秘PDF

    4.2.5 单项选择(RadioGroup、RadioButton 4.2.6 多项选择(CheckBox) 4.2.7 下拉列表(Spinner) 4.2.8 自动提示(AutoComplete.TextⅥew) 4.2.9 日期和时间(DatePicker、TimePicker) 4.2.10 按钮(Button) 4.2.1l 菜单...

    android控件

    四、复选框(CheckBox) CheckBox控件允许用户进行多选。例如,在设置中,用户可以选择多个偏好。XML布局中使用`&lt;CheckBox&gt;`标签,`android:text`属性设置文字,`android:checked`控制初始状态。 五、列表视图...

    Android所有UI控件

    在Android开发中,UI(用户...在实际项目中,常常结合Android源码和示例(demo)进行学习和实践,以加深理解并提高开发效率。通过`BOOKUI所有控件`这个压缩包,你可以找到更多关于这些控件的实例代码,便于学习和参考。

    第02章 Android简单控件的开发及应用

    两者通常配合`CheckBoxGroup`或`RadioGroup`使用,通过`android:checkedButton`属性设置默认选中的项。 6. **Spinner**:Spinner提供下拉选择功能,用户可以从预定义的选项中选择一个。通过`android:entries`指定...

    Android编程入门很简单.(清华出版.王勇).part1

    本书是一本与众不同的Android学习读物,是一本化繁为简,把抽象问题具体化,把复杂问题简单化的书。本书避免出现云山雾罩、晦涩难懂的讲解,代之以轻松活泼、由浅入深的剖析。这必将使得阅读本书的读者少走弯路,...

    Android基础知识详解

    Android的系统架构 6 一、应用程序 6 二、应用程序框架 6 三、Android Runtime 7 四、系统库 7 五、Linux 内核 8 Webkit浏览器引擎简介 9 Dalvik虚拟机简介 11 什么是Dalvik虚拟机 11 Dalvik和Android系统 11 Dalvik...

    《Android应用开发揭秘》附带光盘代码.

    《Android应用开发揭秘》全部实例源代码,配合《Android应用开发揭秘》使用 前言  第一部分 准备篇  第1章 Android开发简介  1.1 Android基本概念  1.1.1 Android简介  1.1.2 Android的系统构架  1.1.3 ...

    Android中文翻译组 ——android.widget合集(中) 免费

    **Android中文翻译组——android.widget合集(中)** 这篇文档是Android开发中关于`android.widget`包的一个中文翻译合集,主要针对Android平台上常用的Widget组件进行深入解析。`android.widget`是Android SDK中的...

    android 控件教程

    6. **CheckBox**:复选框允许用户选择多个选项,`android:checked`属性用于设置初始状态,`android:onClick`同样可用于绑定点击事件。 7. **Spinner**:下拉列表控件,用户可以选择一个预设的选项。通常结合`...

    Android入门到精通源代码.

    《Android从入门到精通》 第1章 初识Android 1.1 什么是Android 1.1.1 移动信息设备分类 1.1.2 Open Handset Alliance和 Android 1.2 Android简介 1.2.1 Andriod的历史 1.2.2 Andriod的未来 1.2.3 Andriod平台的技术...

    android常用系统控件

    在Android开发中,系统控件是构建用户界面的基础元素,它们提供了与用户交互的各种功能。本文将深入探讨Android中常见的系统控件,以及如何在应用中有效地使用它们。 1. **按钮(Button)**:按钮是最基本的控件,...

    Android 多种android控件的Demo.rar

    与CheckBox不同,RadioButtons通常放在`RadioGroup`中,以确保同一组内只有一个被选中。 6. Spinner(下拉列表): Spinner提供了一个下拉菜单供用户选择,可以用于显示有限的选项。使用`&lt;Spinner&gt;`标签创建,并...

    《Android应用开发揭秘》源码

     4.2.5 单项选择(RadioGroup、RadioButton  4.2.6 多项选择(CheckBox)  4.2.7 下拉列表(Spinner)  4.2.8 自动提示(AutoComplete.TextⅥew)  4.2.9 日期和时间(DatePicker、TimePicker)  4.2.10 按钮(Button) ...

    android常用控件及布局.pdf

    容器这里的容器是指采用了特定的布局并且提供了行为的控件,包含 ListView、GridView、Gallery、Spinner 等。 二、TextView 控件 TextView 控件是 Android 中最基本的控件之一,用于显示文本信息。它可以设置字体...

    android笔记

    根据提供的信息,我们可以深入探讨Android开发中的几个关键概念与技术要点。下面将详细介绍与Activity、布局管理器、组件以及对话框等相关的重要知识点。 ### Activity Activity是Android应用程序四大组件之一,它...

    Android应用开发揭秘pdf高清版

    《Android应用开发揭秘》内容全面,不仅详细讲解了Android框架、Android组件、用户界面开发、游戏开发、数据存储、多媒体开发和网络开发等基础知识,而且还深入阐述了传感器、语音识别、桌面组件开发、Android游戏...

Global site tag (gtag.js) - Google Analytics