android笔记【三】-----事件处理
来源:互联网 发布:ods 数据仓库 数据集市 编辑:程序博客网 时间:2024/05/18 02:54
常用事件:
事件的监听类似于flash中的AS3,应该是ECMA的统一规定。
处理方法格式on+xxx / 绑定监听器格式set+On+xxx+Listener
onClick()/setOnClickListener()
onLongClick()
onFocusChange()
onKey()
onTouch()
onCreateContextMenu()
使用:
获取控件后附加监听器如
this.but.setOnClickListener(new OnClickBut(){//匿名内部类,只使用一次。public onClick(){this.showView.setText("被点击了")}});
或者使用内部类处理
this.but.setOnClickListener(new OnClickBut())private class OnClickBut implements OnClickListener{public onClick(View v){this.showView.setText("被点击了");}}
屏幕横竖事件
设置/获取手机屏幕状态
set/getRequestedOrientaion()
onConfigurationChanged()系统设置发生改变时
当前的屏幕情况ActivityInfo.SCREEN_ORIENTAION_LANDSCAPE / PORTRAIT / UNSPECIFIED 横竖无
例子:
public class MainActivity extends Activity {private Button bt;private TextView tv; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.bt=(Button)super.findViewById(R.id.bt1); this.tv=(TextView)super.findViewById(R.id.tv1); this.bt.setOnClickListener(new OnButClick()); } private class OnButClick implements OnClickListener{public void onClick(View v) { MainActivity.this.tv.setText("点击");if(MainActivity.this.getRequestedOrientation()==ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED){MainActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);MainActivity.this.tv.setText("现在是横屏");}elseif(MainActivity.this.getRequestedOrientation()==ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE){MainActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);MainActivity.this.tv.setText("现在是竖屏");}else{MainActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);MainActivity.this.tv.setText("现在是横屏");}} }
另外,在切换横竖屏时有很重要的一点:安卓默认是重载相应控件的这样会造成textview的字始终是默认文字。而不是“现在是横屏”、竖屏。
这就需要我们在androidManifest.xml中的那个activity标签中添加android:configChanges="orientation"表示方向设置改变时不重载。
设置password明文显示
可以使用password.setTransformationMethod(HideReturnTransformationMethod.getInstance())明文显示
或者password.setTransformationMethod(PasswordTransformationMethod.getInstance())星号显示
radio控件改变事件
onCheckedChanged 实现的方法
set+OnCheckedChanged+Listener
下拉列表事件
单击
onItemClick实现方法
set+onItemClick+Listener
改变
onItemSelected
获取所选value:parent.getItemAtPosition(position).toString();
长按
onItemLongClick
多级列表:
private Spinner city = null; // 下拉列表框内容private Spinner area = null; // 二级列表private String[][] areaData = new String[][] {{ "东城", "西城", "朝阳", "大兴", "平谷" }, // 针对于一级的子信息{ "黄浦", "杨浦", "闵行" }, // 针对于二级的子信息{ "广州" } // 针对于三级的子信息}; // 子菜单项private ArrayAdapter<CharSequence> adapterArea = null;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);super.setContentView(R.layout.main);this.city = (Spinner) super.findViewById(R.id.city); // 取得下拉列表框this.area = (Spinner) super.findViewById(R.id.area); // 取得下拉列表框this.city.setOnItemSelectedListener(new OnItemSelectedListenerImpl());}private class OnItemSelectedListenerImpl implements OnItemSelectedListener {public void onItemSelected(AdapterView<?> parent, View view,int position, long id) { // 表示选项改变的时候触发MySpinnerListenerDemo.this.adapterArea = new ArrayAdapter<CharSequence>(MySpinnerListenerDemo.this,android.R.layout.simple_spinner_item,MySpinnerListenerDemo.this.areaData[position]); // 定义所有的列表项MySpinnerListenerDemo.this.area.setAdapter(MySpinnerListenerDemo.this.adapterArea);// 设置二级下拉列表的选项内容}public void onNothingSelected(AdapterView<?> arg0) { // 表示没有选项的时候触发// 一般此方法现在不关心}}
时间选择器事件监听
实现事件:
onDateChanged
onTimeChanged
但Date的事件监听器是init,而不是listener。
this.date.init(this.date.getYear(), this.date.getMonth(),
this.date.getDayOfMonth(), new OnDateChangedListenerImpl());
- android笔记【三】-----事件处理
- Android笔记----Android事件处理
- android笔记(事件处理)
- android学习笔记-事件处理
- Qt学习笔记(三)事件处理
- android事件处理的三种方式
- Android开发之三:事件处理
- Android 经典笔记之三:Fragment中返回键事件处理
- Android学习笔记-事件处理机制
- android学习笔记之事件处理机制
- Android学习笔记——事件处理
- android学习笔记(16)广播事件处理
- Android学习笔记-事件处理机制
- Android 笔记 motionEvent 处理触摸事件
- jQuery实战学习笔记(三)--事件处理
- Android 基本控件及表单三大控件,事件处理
- Android笔记二十三.Android基于事件监听器处理机制
- 【Android】【笔记】《Android 入门经典》part 9 事件处理
- Assets
- Androidr的图片的缩放、读取、压缩保存
- 特殊矩阵
- ios对plist的操作
- MVVM教程
- android笔记【三】-----事件处理
- Android SystemProperties简介
- linux 查看进程占用内存
- UITableView与UITableViewCell
- 一个计算机爱好者的不完整回忆(三十二)盖房子的思考
- Oracle 9i Job -->DBMS_JOB 简介及使用方法
- svn获取spring源码方法
- IE下用ReportView显示RDLC报表,提示“您的浏览器不支持脚本或已配置为不允许使用脚本”
- qt运用phonon播放音乐出现问题