`
suuu
  • 浏览: 16353 次
  • 性别: 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 基础控件大全 二维码 6.0权限获取应有尽有

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

    Android简明应用程序开发[原创]

    4.4.1 ProgressBar与ProgressDialog 122 4.4.2 RatingBar 130 五、小结 134 第五章 Composite Widgets 135 一、ListView 135 4.1.1 Adapter 135 4.1.2 ListView 136 4.1.3 ArrayAdapter 137...

    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编程入门很简单.(清华出版.王勇).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从入门到精通》 第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应用开发揭秘》源码

     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开发入门与实战(下)

    第15章 Android综合案例四——在线音乐播放器 15.1 关于YOBO和YOBOAPI 15.1.1 YOBO简介 15.1.2 YOBO功能特点 15.1.3 YOBOAPI介绍 15.2 在线播放器架构设计 15.2.1 在线播放器功能规划设计 15.2.2 在线播放器UI设计 ...

    Android应用开发揭秘pdf高清版

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

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

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

    android开发入门与实战(上)

    第15章 Android综合案例四——在线音乐播放器 15.1 关于YOBO和YOBOAPI 15.1.1 YOBO简介 15.1.2 YOBO功能特点 15.1.3 YOBOAPI介绍 15.2 在线播放器架构设计 15.2.1 在线播放器功能规划设计 15.2.2 在线播放器UI设计 ...

    《Google Android开发入门与实战》.pdf

    第15章 android综合案例四——在线音乐播放器 283 15.1 关于yobo和yobo api 283 15.1.1 yobo简介 284 15.1.2 yobo功能特点 284 15.1.3 yobo api介绍 284 15.2 在线播放器架构设计 285 15.2.1 ...

    android开发demo集合

    1、LinearLayout Button、RadioGroup、 CheckBox 2、TableLayout 3、FrameLayout 霓虹灯效果 4、RelativeLayout 梅花效果 5、自定义view跟着触点走的小球 6、 ListView 列表视图 7、WebView web视图 8、...

    android初学者入门项目

    1、LinearLayout Button、RadioGroup、 CheckBox 2、TableLayout 3、FrameLayout 霓虹灯效果 4、RelativeLayout 梅花效果 5、自定义view跟着触点走的小球 6、 ListView 列表视图 7、WebView web视图 8、...

    Google.Android开发入门与实战

    第15章 Android综合案例四——在线音乐播放器 15.1 关于YOBO和YOBOAPI 15.1.1 YOBO简介 15.1.2 YOBO功能特点 15.1.3 YOBOAPI介绍 15.2 在线播放器架构设计 15.2.1 在线播放器功能规划设计 15.2.2 在线播放器UI设计 ...

    Google Android开发入门与实战的代码

    第15章 Android综合案例四——在线音乐播放器 283 15.1 关于YOBO和YOBO API 283 15.1.1 YOBO简介 284 15.1.2 YOBO功能特点 284 15.1.3 YOBO API介绍 284 15.2 在线播放器架构设计 285 15.2.1 ...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    Google Android SDK开发范例大全(完整版)共4个分卷 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1...

Global site tag (gtag.js) - Google Analytics