android-常用部件
1.创建Dialog()
android提供了4种类型的Dialog:AlertDialog,ProgressDialog,DatePickerDialog,TimePickerDialog.
1.0 AlertDialog
1.1 调用dialog的步骤(当用户点击某个item时)
用showDialog方法调用创建Dialog的方法(onCreateDialog方法)
@Override public boolean onOptionsItemSelected(MenuItem item) { //对option菜单的选项选中后进行操作 int id=item.getItemId(); //匹配选中item的id,并调用showDialog方法出入id, //创建dialog由Activity的onCreateDialog方法实现 switch(id) { case OPTON_ITEM_EXIT: showDialog(OPTON_ITEM_EXIT); break; case OPTON_ITEM_SCAN: showDialog(OPTON_ITEM_SCAN); break; } return true ; } @Override public boolean onContextItemSelected(MenuItem item) { //对context菜单的选项选中后进行操作 int id=item.getItemId(); switch(id) { case CONTEXT_OPTION_DELETE: showDialog(CONTEXT_OPTION_DELETE); break; case CONTEXT_OPTION_PROPERTY: showDialog(CONTEXT_OPTION_PROPERTY); break; } return true; }
1.2 创建dialog的步骤:
在Activity的中覆盖onCreateDialog方法,id为Activity的item的常量值
private static final int OPTON_ITEM_SCAN = 101; private static final int CONTEXT_OPTION_DELETE = 100; private static final int CONTEXT_OPTION_PROPERTY = 0; @Override protected Dialog onCreateDialog(int id) { //对传入的item的id进行匹配并创建相应的Dialog //使用AlertDialog.Builder为当前context创建Dialog //1.标题:setTitle //2.两个按钮:一个消极的按钮:setNegativeButton,一个积极的按钮:setPositiveButton switch(id) { case CONTEXT_OPTION_DELETE : return new AlertDialog.Builder(this) .setTitle(R.string.delete_message).setNegativeButton(R.string.button_ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { //进行删除操作 //通过contentResolver和contentprovider进行删除操作 ContentResolver resolver=getContentResolver(); //获取选中歌曲的id int songid=cursor.getInt (cursor.getColumnIndexOrThrow(MediaStore.Audio.Media._ID)); //获取歌曲的data的目录 String path=cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA)); //从数据库中获得指定id歌曲的uri的记录, //ContentUris是操作uri类, //它(以自己的方式:content://authority/path/id)可以访问数据库某条或某行记录 Uri uri=ContentUris.withAppendedId(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, songid); //删除歌曲在数据库中的记录 resolver.delete(uri, null, null); //删除在SD卡中的文件 File f=new File(path); if(f.exists()) f.delete(); //通知主界面,该歌曲已经被删除 Toast.makeText(MusicDemoActivity.this,"歌曲已经删除",100).show(); } } ).setPositiveButton(R.string.button_cancel, new OnClickListener() { public void onClick(DialogInterface dialog, int which) { //取消时则销毁该Dialog,可以是Activity的dismissDialog(show)方法 //或是dialog对象的dismiss方法 dismissDialog(CONTEXT_OPTION_DELETE); } } ).create(); case CONTEXT_OPTION_PROPERTY: break; case OPTON_ITEM_EXIT: break; case OPTON_ITEM_SCAN: break; } return null; }
2.通知用户
Toast:提示用户一小段文本信息,无法和用户交互
Notification:在状态栏提示用户,用户可以和Notification交互,如短信来了
Dialog:在当前Activity前面弹出小窗口,代替Activity接收用户输入。
3.处理用户输入
android为处理用户输入提供了多种方式,其核心机制是使用java的接口回调(call back)机制。
View.View类中定义了一系列的内嵌监听器类,包括:
View.OnClickListener:监听点击动作
View.OnLongClickListener:监听长按动作
View.OnKeyListener:监听键盘按键动作
View.OnTouchListener:监听按下,释放,或者移动
View.OnFocusChangeListener:焦点进入,或者离开View
View.OnCreateContextMenuListener :contextmenu创建时,调用
oncreateContextmenu方法
4.样式和主题(style)
为自己的界面(textview的小部件,Windows主窗口)设计自己的style(样式和主题).
样式和主题都是在res/values文件夹下创建android resources xml 文件,
根节点为<resources>,子节点<style>为样式/主题,在values文件夹下,书写方式都是键值对写法,键是属性,值是属性值。
样式(针对某个widget如textview):
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="mystyles_textView" > <item name="android:textColor">#FF0000</item> </style> </resources> 调用方式:在xml文件中 <TextView android:id="@+id/song" android:layout_width="fill_parent" android:layout_height="wrap_content" style="@style/mystyles_textView" />
主题(针对窗口):
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="mytheme" > <item name="android:textColor">#FF0000</item> <item name="android:windowNoTitle">true</item> <item name="android:windowBackground">@drawable/sea</item> </style> </resources>
调用方式:在清单文件中
<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/mytheme" >
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。