[置顶] Android事件—单选按键和下拉按键
在平常的开发中单选按键和下拉按键是非常常用的2个点击事件。首先介绍下单选按键
1:单选按键,单选的主键是radiogroup 这个主键也是很重要的
首先介绍下主键的布局
<?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="vertical">
<TextView android:id="@+id/myRadioListenerTV"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="20px"
android:text="您选择的性别是:"/>
<RadioGroup android:id="@+id/myRadioListenerRG"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkedButton="@+id/myRadioListenerMale">
<RadioButton android:id="@+id/myRadioListenerMale"
android:text="男"/>
<RadioButton android:id="@+id/myRadioListenerFemale"
android:text="女"/>
</RadioGroup>
</LinearLayout>
在单选RadioGroup 中里面的选择项主要是由RadioButton 组成,这和一般的主键区别不大 radiogroup里面的属性就不一一介绍了。
private RadioGroup radioGroup;
private TextView textView;
private RadioButton btMale,btFemale;
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.myradiolistener);
this.radioGroup=(RadioGroup)super.findViewById(R.id.myRadioListenerRG);
this.textView=(TextView)super.findViewById(R.id.myRadioListenerTV);
this.btMale=(RadioButton)super.findViewById(R.id.myRadioListenerMale);
this.btFemale=(RadioButton)super.findViewById(R.id.myRadioListenerFemale);
this.radioGroup.setOnCheckedChangeListener(new CheckedChanegdListener());
}
public RadioGroup getRadioGroup() {
returnradioGroup;
}
publicvoid setRadioGroup(RadioGroup radioGroup) {
this.radioGroup = radioGroup;
}
public TextView getTextView() {
returntextView;
}
publicvoid setTextView(TextView textView) {
this.textView = textView;
}
public RadioButton getBtMale() {
returnbtMale;
}
publicvoid setBtMale(RadioButton btMale) {
this.btMale = btMale;
}
public RadioButton getBtFemale() {
returnbtFemale;
}
publicvoid setBtFemale(RadioButton btFemale) {
this.btFemale = btFemale;
}
this.radioGroup.setOnCheckedChangeListener(new CheckedChanegdListener());
就是单选按键事件的重要点,我们不推荐在里面直接写内部类的方式
在单选RadioGroup 主要是实现CheckedChanegdListener方法
这个类是实现OnCheckedChangeListener这个接口的
publicvoid onCheckedChanged(RadioGroup group, int checkedId) {
if(group.getId()==R.id.myRadioListenerRG){
String temp="";
myRadioListener my1=(myRadioListener)group.getContext();
if(my1.getBtMale().getId()==checkedId){
temp="您选择的性别是:"+my1.getBtMale().getText();
}elseif(my1.getBtFemale().getId()==checkedId){
temp="您选择的性别是:"+my1.getBtFemale().getText();
}
my1.getTextView().setText(temp);
}
个参数第一个是当前的单选按键,第二个是被选中的radiobutton的id
group.getId()==R.id.myRadioListenerRG 判断当前是对那个单选按键操作
1:下拉列表(Spinner)
下拉列表的的主键是Spinner 这个主键和其他的主键有点区别,主要是数据源的来源,可以在代码中实现,也可以用配置的方式
下面的程序是用代码实现数据源的
<?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="vertical">
<TextView android:id="@+id/mySpinnerClickTV"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="您选择的颜色是:"/>
<Spinner android:id="@+id/mySpinnerClickSpinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
package com.bruce;
import com.bruce.OnClickListener.ItemClickListenerImpl;
import com.bruce.OnClickListener.ItemSelectedListenerImpl;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
publicclass mySpinnerClick extends Activity{
private TextView tv;
private Spinner spinner;
private ArrayAdapter<String> adapterColor=null;
private String [] colorArray={"红","黄","蓝"};
public TextView getTv() {
returntv;
}
publicvoid setTv(TextView tv) {
this.tv = tv;
}
public Spinner getSpinner() {
returnspinner;
}
publicvoid setSpinner(Spinner spinner) {
this.spinner = spinner;
}
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.myspinnerclick);
this.tv=(TextView)super.findViewById(R.id.mySpinnerClickTV);
this.spinner=(Spinner)super.findViewById(R.id.mySpinnerClickSpinner);
this.adapterColor=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,colorArray);
this.adapterColor.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
this.spinner.setAdapter(adapterColor);
this.spinner.setPrompt("您选择的颜色是:");
this.spinner.setOnItemSelectedListener(new ItemSelectedListenerImpl());
}
}
在下拉列表中主要装载数据的是个
this.adapterColor=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,colorArray);
创建一个ArrayAdapter 并把数据和其放在了一起android.R.layout.simple_spinner_item是怎么在主键中展现
his.adapterColor.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);打开下拉列表是用什么的方式
spinner其自身也有很多的方法比如设置下拉列表头this.spinner.setPrompt("您选择的颜色是:");
其选择事件是this.spinner.setOnItemSelectedListener(new ItemSelectedListenerImpl())
个方法
publicvoid onItemSelected(AdapterView<?> parent, View view, int position,
long id) {
System.out.println(parent.getId());
System.out.println(view.getId());
System.out.println(R.id.mySpinnerClickSpinner);
System.out.println(view.getId() == R.id.mySpinnerClickSpinner);
if(parent.getId()==R.id.mySpinnerClickSpinner){
String value = parent.getItemAtPosition(position).toString();
mySpinnerClick my1 = (mySpinnerClick) view.getContext();
my1.getTv().setText("您选择的颜色是:" + value);
}
publicvoid onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
个参数,parent当前下拉列表,view当前视图,position下拉列表id,id选择的下拉列表值
onItemSelected是对下拉列表操作的时候做的事
onNothingSelected 不做任何操作的时候做的事
[置顶] Android事件—单选按键和下拉按键的更多相关文章
- Android之RecyclerView轻松实现下拉刷新和加载更多
今天研究了下RecyclerView的滑动事件,特别是下拉刷新和加载更多事件,在现在几乎所有的APP显示数据列表时都用到了.自定义RecyclerView下拉刷新和加载更多听上去很复杂,实际上并不难, ...
- Android UI--自定义ListView(实现下拉刷新+加载更多)
Android UI--自定义ListView(实现下拉刷新+加载更多) 关于实现ListView下拉刷新和加载更多的实现,我想网上一搜就一堆.不过我就没发现比较实用的,要不就是实现起来太复杂,要不就 ...
- [置顶] Android源码分析-点击事件派发机制
转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/17339857 概述 一直想写篇关于Android事件派发机制的文章,却一直没 ...
- [置顶] Android开发笔记(成长轨迹)
分类: 开发学习笔记2013-06-21 09:44 26043人阅读 评论(5) 收藏 Android开发笔记 1.控制台输出:called unimplemented OpenGL ES API ...
- [置顶] Android图片异步加载之Android-Universal-Image-Loader
将近一个月没有更新博客了,由于这段时间以来准备毕业论文等各种事务缠身,一直没有时间和精力沉下来继续学习和整理一些东西.最近刚刚恢复到正轨,正好这两天看了下Android上关于图片异步加载的开源项目,就 ...
- Android事件分发机制(下)
这篇文章继续讨论Android事件分发机制,首先我们来探讨一下,什么是ViewGroup?它和普通的View有什么区别? 顾名思义,ViewGroup就是一组View的集合,它包含很多的子View和子 ...
- 【转】 [置顶] Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)
在Android的应用层中,涉及到很多应用框架,例如:Service框架,Activity管理机制,Broadcast机制,对话框框架,标题栏框架,状态栏框架,通知机制,ActionBar框架等等. ...
- 【朝花夕拾】Android自定义View篇之(七)Android事件分发机制(下)滑动冲突解决方案总结
前言 转载请声明,转自[https://www.cnblogs.com/andy-songwei/p/11072989.html],谢谢! 前面两篇文章,花了很大篇幅讲解了Android的事件分发机制 ...
- [置顶] Android系统五大布局详解Layout
我们知道Android系统应用程序一般是由多个Activity组成,而这些Activity以视图的形式展现在我们面前,视图都是由一个一个的组件构成的.组件就是我们常见的Button.TextEdit等 ...
随机推荐
- OJ提交题目中的语言选项里G++与C++的区别(转载)
原文链接:http://blog.polossk.com/201405/c-plus-plus-g-plus-plus G++? 首先更正一个概念,C++是一门计算机编程语言,G++不是语言,是一款编 ...
- wp如何代码实现锁屏
原文:wp如何代码实现锁屏 由于wp系统对开发者相对封闭,造成了用户对那些稍有用处但又不那么有用的功能过度追求,比如说重启.锁屏等功能.针对一个功能写两行代码,再起一个牛逼哼哼的名字,就可以获得超级多 ...
- [转载]cookie
cookie概述 在上一节,曾经利用一个不变的框架来存储购物栏数据,而商品显示页面是不断变化的, 尽管这样能达到一个模拟 全局变量的功能,但并不严谨.例如在导航框架页面内右击,单击快捷菜单中的[刷新] ...
- net.sf.json 迄今 时刻 格式 办法
创作工具类 import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import ...
- Socket 学习(三).4 UDP 穿透 客户端与客户端连接
效果图: 使用方法: 先 修改WinClient\bin\Debug 下面的 ip.ini,写上 服务器 IP地址. 客户端 与 客户端 通讯 之前 ,点击发送打洞消息 按钮,然后过一会再发送消息 ...
- nodeJS起步 1
nodeJS起步 -- (1) 先来简单介绍nodeJS 我们知道JavaScript是运行在浏览器中的,浏览器为它提供了一个上下文(context),从而让JavaScript得以解析执行. nod ...
- MonkeyRunner于Windows在下面Eclipse开发环境的搭建步骤(并解决在线Jython配置错误的问题)
网上有一shangdong_chu网友写了一篇文章介绍了如何Eclipse构造MonkeyRunner,他做了叙述一个很好的说明.但我对我的环境试验后会见Jython解析错误的问题,和制品缺少Pyde ...
- AngularJS应用开发思维之1:声明式界面
这篇博客之前承接上一篇:http://www.cnblogs.com/xuema/p/4335180.html 重写示例:模板.指令和视图 AngularJS最显著的特点是用静态的HTML文档,就可以 ...
- windows下用c实现Socket通信
原文:windows下用c实现Socket通信 原本以为c是跨平台,所以,c在windows下和linux下的程序应该是类似于Java,什么都不用改变的,今儿才恍然大悟,他们的类库不一样啊-- 下面我 ...
- Asp.Net MVC5入门学习系列②
原文:Asp.Net MVC5入门学习系列② 添加一个Controller(控制器) 因为我们用的是Asp.Net MVC,MVC最终还是一套框架,所以我们还是需要遵循它才能玩下去,或者说是更好的利用 ...