博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android-常用部件
阅读量:5330 次
发布时间:2019-06-14

本文共 5293 字,大约阅读时间需要 17 分钟。

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文件中

 

主题(针对窗口):

 

调用方式:在清单文件中

 

转载于:https://www.cnblogs.com/beyondbycyx/p/4336166.html

你可能感兴趣的文章
对闭包的理解
查看>>
练习10-1 使用递归函数计算1到n之和(10 分
查看>>
Oracle MySQL yaSSL 不明细节缓冲区溢出漏洞2
查看>>
windows编程ASCII问题
查看>>
.net webService代理类
查看>>
Code Snippet
查看>>
Node.js Express项目搭建
查看>>
zoj 1232 Adventure of Super Mario
查看>>
1201 网页基础--JavaScript(DOM)
查看>>
组合数学 UVa 11538 Chess Queen
查看>>
oracle job
查看>>
Redis常用命令
查看>>
XML学习笔记(二)-- DTD格式规范
查看>>
IOS开发学习笔记026-UITableView的使用
查看>>
[转载]电脑小绝技
查看>>
windos系统定时执行批处理文件(bat文件)
查看>>
thinkphp如何实现伪静态
查看>>
BZOJ 2243: [SDOI2011]染色( 树链剖分 )
查看>>
BZOJ 1925: [Sdoi2010]地精部落( dp )
查看>>
c++中的string常用函数用法总结!
查看>>