Android——Android基础控件
来源:互联网 发布:nodejs 多个js 编辑:程序博客网 时间:2024/06/02 00:26
View常用事件接口
View事件的监听
View的事件监听是指用户与应用交互,当用户对View进行点击、长按、触摸、移动的动作时,程序对这些动作进行处理。
onClickListener 点击View时的监听onLongClickListener 长按View时的监听onToucheListener 触摸View时的监听
Android系统中,onClickListener是一种处理的是点击事件的接口。
public void onClik(View v){ //参数v为事件源控件,当长时间按下此控件时才会触发该方法 //当多个组件共用同一个监听器时,用来区分组件}
在Android APP应用中,OnLongClick事件表示长按2秒以上就会触发的事,OnLongClickListener接口与OnClickListener接口原理基本相同,只是该接口为View长按事件的捕捉接口,即长时间按下某个View时触发的事件,该接口对应的回调方法如下
public boolean onLongClick(View v){//参数v为事件源控件,当长时间按下此控件时才会触发该方法//当多个组件共用同一个监听器时,用来区分组件//返回值:该方法的返回值为一个boolean类型的变量//当返回true时,表示已经完整地处理了这个事件,并不希望其他方法的回调方法再次进行处理//当返回false时,表示并没有完全处理该事件,更希望其他方法继续进行对其处理}
需要注意的以下几点:
- 监听器是一个接口,它包含了一个事件触发时系统会调用的函数。
- 在实现类中,根据项目的需要重写这个函数。
- 实现后的监听器需要绑定在按键的按钮上,就像一个耳机可以发出声音,但是你没有去戴它,你就听不到它发出的声音。一般情况是这个View可能需要这个监听器,而另外一个View需要另外一个监听器,每一个监听器各司其职,但功能相似时,也可以多个按钮共同绑定一个监听器。
- 各种控件,都有常用的事件,绑定监听器的函数命名规则是setOn****Listener
设置监听的几种方法
1. 让Activity实现接口
public class MainActivity extends Activity implements OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button back = (Button) findViewById(R.id.back); back.setOnClickListener(this); } @Override public void onClick(View v) { //点击事件 } }
2.匿名内部类
public class MainActivity extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button back = (Button) findViewById(R.id.back);back.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) { //点击事件 } }); }}
3.onClick可以在xml中设置
<Button android:id="@+id/back" android:onClick="buttonClick" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="←" />
然后在代码中建立点击事件方法
必须是public void 名称同android:onClick(View v)
public void buttonClick(View v) { //点击事件}
4.实现类
public class MyClick implements OnClickListener{@Overridepublic void onClick(View v) { //点击事件 } }@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button back = (Button) findViewById(R.id.back);MyClick listener = new MyClick();back.setOnClickListener(listener);}
5.成员变量
private OnClickListener listener = new OnClickListener() {@Overridepublic void onClick(View v) { //点击事件 }};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button back = (Button) findViewById(R.id.back);back.setOnClickListener(listener);}
基础组件
所有的控件都可以在java代码中创建出来,并且大部分的属性都对应set与get方法,比如
View view= new View(Context context) context是上下文,是Activity父类,一般传入当前Activity
EditText编辑框
EditText是程序用于和用户进行交互的的另一个重要控件,它允许用户在控件里输入和编辑内容,并可以在程序中对这些内容进行处理。
EditText继承TextView,拥有TextView中所有的属性和方法,一般用来提供给用户进行文字,密码等输入操作。
注意:EditText大部分属性都属于TextView,但是在TextView上没有效果
EditText常用属性
android:capitalize 设置英文字母大写类型。设置如下值: //sentences仅第一个字母大写; //words每一个字母大小,用空格区分单词; //characters每一个英文字母都大写。在模拟器上用PC键盘直接输入可以看到效果,但是在软键盘上没有效果android:digits 设置允许输入那些字符,如:"1234567890,+-*/%\n()"android:editable 设置是否可以编辑。仍然可以获取光标,但是无法输入android:hint Text为空时显示文字提示信息,可以通过textColorHint设置提示信息的颜色。android:imeOptions 设置软件盘的Enter键。可用'|'设置多个,如下值可以设置: //normal 默认,换行 //actionGo 软键盘下方变成"前往""去往""GO"根据输入法的不同而不同(下面的也一样) //actionSearch 软键盘下方变成“搜索”或者放大镜。 //actionSend 软键盘下方变成“发送”。 //actionNext 软键盘下方变成“下一个”。 //actionDone 软键盘下方变成“完成”,点击后光标保持在原来的输入框上,并且软键盘关闭android:inputType 设置文本的类型,用于帮助输入法显示合适的键盘类型。android:ems 设置TextView的宽度为N个字符的宽度。参见TextView中此属性的截图。android:maxLength 限制输入字符数。如设置为5,那么仅可以输入5个汉字/数字/英文字母。
监听事件
EditText作为用户输入组件,使用频率非常高,而且当文字的改变,修改Enter键后,我们都要去处理Enter键监听事件
Enter监听事件
EditText etDone = (EditText) findViewById(R.id.etDone); //设置Enter按键处理事件 etDone.setOnEditorActionListener(new OnEditorActionListener() { @Overridepublic boolean onEditorAction(TextView v, int actionId, KeyEvent event){//处理//actionId 当前事件组件的资源ID,用来区分多个EditText用同一个监听器//event 事件源,封装了当前操作动作return false; }});
文字改变监听
EditText etDone = (EditText) findViewById(R.id.etDone);//添加一个文字时改变监听etDone.addTextChangedListener(new TextWatcher() {@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) { //文字改变时 回调此方法 }@Overridepublic void beforeTextChanged(CharSequence s, int start, int count,int after) { //文字改变之前}@Overridepublic void afterTextChanged(Editable s) { //文字改变之后 }});
RadioGroup与RadioButton单选按钮
RadioButton是Button的子类,所以可以直接使用Button支持的各种属性,如果需要多个按钮同时只能被选中一个,需要放在同一个RadioGroup组中。
**RadioGroup是LinearLayout的子类,默认为从上到下排列子元素,如果需要改变成横向,需要设
置android:orientation为horizontal。**
RadioButton和RadioGroup的关系
- RadioButton表示单个圆形单选框,而RadioGroup是可以容纳多个RadioButton的容器
- 每个RadioGroup中的RadioButton同时只能有一个被选中
- 不同的RadioGroup中的RadioButton互不相干,即如果组A中有一个选中了,组B中依然可以有一个被选中
- 大部分场合下,一个RadioGroup中至少有2个RadioButton
- 大部分场合下,一个RadioGroup中的RadioButton默认会有一个被选中,并建议将它放RadioGroup
中的起始位置。
RadioGroup常用属性
android:checkedButton 值为数字,这是子单选按钮应该在默认情况下此单选组内选中的ID
监听事件
adioButton.setOnCheckedChangeListener();CompoundButton.OnCheckChangeListener:public void onCheckedChanged(CompoundButton 状态改变的button,boolean 是否被选中)一般开发中 使用下面这种模式RadioGroup.setOnCheckedChangeListener();RadioGroup.OnCheckChangeListener:public void onCheckedChanged(RadioGroup 状态改变的组, int 被选中的ButtonId号)
CheckBox多选框
和RadioButton相同,区别在于是多选按钮,同时可以多个被选中,每一个组件都有true和false两种check状态 。
android:checked一般使用CompoundButton的OnCheckedChangeListenerxml中使用@null来将背景或者button按钮图片取消
DatePicker&TimePicker
在Android程序中,我们通常需要使用DatePicker来设置日期,TimePicker来设置时间。其基本步骤是:
- 先定义DatePicker和TimePicker布局
- 然后通过Calendar类获得系统时间
- 接着通过init方法将日期传递给DatePicker初始化日期控件,在响应点击事件中可以通过DatePicker
的getYear()、getDayOfMonth()、getMonth()函数获取具体日期,同时可以在
OnDateChangedListener事件中监听日期变化,设置时间函数方法同理。
阅读全文
0 0
- Android基础控件—CardView
- Android基础控件—GridView
- Android基础控件—RecycleView
- Android——Android基础控件
- Android UI基础——TextView控件
- Android UI基础——Button控件
- Android UI基础——EditText控件
- Android UI基础——Toast控件
- Android UI基础——Notification控件
- Android基础控件——SeekBar_1
- 【android基础学习之二】——基础控件ListView
- Android 基础控件说明
- android基础--RatingBar控件
- Android基础--GridView控件
- Android基础-TabHost控件
- Android基础--AutoCompleteTextView控件
- (android 基础) 日期控件
- Android-Button控件基础
- 简单工厂设计模式(Simple Factory)
- python科学计算笔记(二)pandas获取网络文件
- 计算机基础——JAVA位操作
- 虚拟机克隆CentOS6.5之后网卡的配置
- sublime text 3 安装ctags
- Android——Android基础控件
- windows上IPC配置不当利用以及防护
- vim
- android 软键盘的显示与隐藏
- Android 滑动Toolbar透明度变化
- html相关
- spring boot
- 使用ccache加速xcode编译过程
- 暑假集训test10