Android 零碎知识点---1

来源:互联网 发布:单片机堆栈指针赋值 编辑:程序博客网 时间:2024/05/21 09:31

Android Notification.setLatestEventInfo弃用和Notification.Builder用法

(转载自:http://blog.csdn.net/sinat_28676875/article/details/50590602)
今天在学习小米便签的源码的时候,至于源码的地址,http://m.blog.csdn.net/article/details?id=50544248 ,里面有好多github的开源项目,打开项目,报错2处,一处就是便是找不到setLatestEventInfo()这个方法,我用的api6.0编译的,在这个api这个方法时被弃用的,采用Notification.Builder来代替,
原来的用法:1首先是拿到NotificationManager这个管理类实例,
mNotifiManager = (NotificationManager) mContext
.getSystemService(Context.NOTIFICATION_SERVICE);

2.创建Notification实例,第一个参数是传入通知的图片,第二个是传入通知的标题,这里采用的getString的方法,顺带一提,getString方法时通过参数tickerId来调用xml文件里的常量,一般这个值为R.String.xxx

Notification notification =new Notification(R.drawable.notification, mContext.getString(tickerId), System.currentTimeMillis())

3调用setLatestEvent(xx),里面有四个参数,分别是context,标题,内容,和pendingIntnet 4个参数
notification.setLatestEventInfo(mContext, mContext.getString(R.string.app_name), content,
pendingIntent);

4.d调用NotificationManager的notify(xx)方法,接收两个参数一个id,可用于取消通知的时候用,另一个是Notification的实例
新的:在APi6.0时方法2,和3步骤被弃用,用过Notification.Builder来创建,直接来看官方的提供代码例程吧`
Notification noti = new Notification.Builder(mContext)
.setContentTitle(“New mail from ” + sender.toString())
.setContentText(subject)
.setSmallIcon(R.drawable.new_mail)
.setLargeIcon(aBitmap)
.build();

他是通过穿件一个Notification.Builder对象,并对这个对象进行设置,然后调用build方法来返回一个Notification对象,最后再执行上述第四个步骤,这里要注意的是,替代setLatestEventInfo(xxx)方法除了上述设置标题和内容,里面还有一个setContentIntent(pendingIntent)来设置点击通知后调用的Intent,还有其他方法详见Android官方文档http://developer.android.com/reference/android/app/Notification.Builder.html

TextView属性android:ellipsize实现跑马灯效果

TextView实现文字滚动需要以下几个要点:
1.文字长度长于可显示范围:android:singleLine=”true”
2.设置可滚到,或显示样式:android:ellipsize=”marquee”
3.TextView只有在获取焦点后才会滚动显示隐藏文字,因此需要在包中新建一个类,继承TextView。重写isFocused方法,这个方法默认行为是,如果TextView获得焦点,方法返回true,失去焦点则返回false。跑马灯效果估计也是用这个方法判断是否获得焦点,所以把它的返回值始终设置为true。

ellipsize属性
设置当文字过长时,该控件该如何显示。有如下值设置:”start”—–省略号显示在开头;”end”——省略号显示在结尾;”middle”—-省略号显示在中间;”marquee” ——以跑马灯的方式显示(动画横向移动)
marqueeRepeatLimit属性
在ellipsize指定marquee的情况下,设置重复滚动的次数,当设置为marquee_forever时表示无限次。
focusable属性
能否获得焦点,同样focusableInTouchMode应该是滑动时能否获得焦点。

Android系统中TextView实现跑马灯效果,必须具备以下几个条件:
1、android:ellipsize=”marquee”
2、TextView必须单行显示,即内容必须超出TextView大小
3、TextView要获得焦点才能滚动
XML代码:
android:ellipsize=”marquee”, android:singleLine=”true”
Java代码:
mTVText.setText(“哼唱接撒砥砺风节雷锋精神http://orgcent.com/,很长很长很长很长很长很长的数据”);
mTVText.setSingleLine(true);
mTVText.setEllipsize(TruncateAt.MARQUEE);
PS: TextView.setHorizontallyScrolling(true); //让文字可以水平滑动
TextView还可以设置跑马灯效果的滚动次数,如下:
XML代码设置:
android:marqueerepeatlimit=”1”。1代表1次,-1代表无限循环。
Java代码设置:
mTVText.setMarqueeRepeatLimit(-1);

EditText 的 inputType属性(键盘类型)

(转载自:http://www.cnblogs.com/hiqc/p/4763844.html)

android中inputType属性在EditText输入值时启动的虚拟键盘的风格有着重要的作用。这也大大的方便的操作。有时需要虚拟键盘只为字符或只为数字。所以inputType尤为重要。

//文本类型,多为大写、小写和数字符号。
android:inputType参数类型说明
android:inputType=”none”–输入普通字符
android:inputType=”text”–输入普通字符
android:inputType=”textCapCharacters”–输入普通字符
android:inputType=”textCapWords”–单词首字母大小
android:inputType=”textCapSentences”–仅第一个字母大小
android:inputType=”textAutoCorrect”–前两个自动完成
android:inputType=”textAutoComplete”–前两个自动完成
android:inputType=”textMultiLine”–多行输入
android:inputType=”textImeMultiLine”–输入法多行(不一定支持)
android:inputType=”textNoSuggestions”–不提示
android:inputType=”textUri”–URI格式
android:inputType=”textEmailAddress”–电子邮件地址格式
android:inputType=”textEmailSubject”–邮件主题格式
android:inputType=”textShortMessage”–短消息格式
android:inputType=”textLongMessage”–长消息格式
android:inputType=”textPersonName”–人名格式
android:inputType=”textPostalAddress”–邮政格式
android:inputType=”textPassword”–密码格式
android:inputType=”textVisiblePassword”–密码可见格式
android:inputType=”textWebEditText”–作为网页表单的文本格式
android:inputType=”textFilter”–文本筛选格式
android:inputType=”textPhonetic”–拼音输入格式
android:inputType=”number”–数字格式
android:inputType=”numberSigned”–有符号数字格式
android:inputType=”numberDecimal”–可以带小数点的浮点格式
android:inputType=”phone”–拨号键盘
android:inputType=”datetime”
android:inputType=”date”–日期键盘
android:inputType=”time”–时间键盘

Android之设置EditText输入类型(setInputType()方法和android:inputType属性)

(转载自:http://blog.csdn.net/u013059863/article/details/49914513)
在Android开发过程中,我们经常使用到EditText控件,并且会根据各种需求设置它的输入类型。设置EditText输入类型主要有两种方法,一种是使用EditText的setInputType()方法,另一种是在布局文件中使用android:inputType属性来设置。
下面将介绍这两种方法:
(1)使用EditText的setInputType()方法设置输入类型:
EditText editText;

//输入类型为没有指定明确的类型的特殊内容类型editText.setInputType(InputType.TYPE_NULL);//输入类型为普通文本editText.setInputType(InputType.TYPE_CLASS_TEXT);//输入类型为数字文本editText.setInputType(InputType.TYPE_CLASS_NUMBER);//输入类型为电话号码editText.setInputType(InputType.TYPE_CLASS_PHONE);//输入类型为日期和时间editText.setInputType(InputType.TYPE_CLASS_DATETIME);//输入类型为{@link#TYPE_CLASS_DATETIME}的缺省变化值,允许输入日期和时间。editText.setInputType(InputType.TYPE_DATETIME_VARIATION_NORMAL);//输入类型为{@link#TYPE_CLASS_DATETIME}的缺省变化值,只允许输入一个日期。editText.setInputType(InputType.TYPE_DATETIME_VARIATION_DATE);//输入类型为{@link#TYPE_CLASS_DATETIME}的缺省变化值,只允许输入一个时间。editText.setInputType(InputType.TYPE_DATETIME_VARIATION_TIME);//输入类型为决定所给文本整体类的位掩码editText.setInputType(InputType.TYPE_MASK_CLASS);//输入类型为提供附加标志位选项的位掩码editText.setInputType(InputType.TYPE_MASK_FLAGS);//输入类型为决定基类内容变化的位掩码editText.setInputType(InputType.TYPE_MASK_VARIATION);//输入类型为小数数字,允许十进制小数点提供分数值。editText.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);//输入类型为数字是带符号的,允许在开头带正号或者负号editText.setInputType(InputType.TYPE_NUMBER_FLAG_SIGNED);//输入类型为{@link#TYPE_CLASS_NUMBER}的缺省变化值:为纯普通数字文本editText.setInputType(InputType.TYPE_NUMBER_VARIATION_NORMAL);//输入类型为{@link#TYPE_CLASS_NUMBER}的缺省变化值:为数字密码editText.setInputType(InputType.TYPE_NUMBER_VARIATION_PASSWORD);//输入类型为自动完成文本类型editText.setInputType(InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE);//输入类型为自动纠正文本类型editText.setInputType(InputType.TYPE_TEXT_FLAG_AUTO_CORRECT);//输入类型为所有字符大写editText.setInputType(InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS);//输入类型为每句的第一个字符大写editText.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);//输入类型为每个单词的第一个字母大写editText.setInputType(InputType.TYPE_TEXT_FLAG_CAP_WORDS);//输入多行文本editText.setInputType(InputType.TYPE_TEXT_FLAG_IME_MULTI_LINE);//进行输入时,输入法无提示editText.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);//输入一个短的,可能是非正式的消息,如即时消息或短信。editText.setInputType(InputType.TYPE_TEXT_VARIATION_SHORT_MESSAGE);//输入长内容,可能是正式的消息内容,比如电子邮件的主体editText.setInputType(InputType.TYPE_TEXT_VARIATION_LONG_MESSAGE);//输入文本以过滤列表等内容editText.setInputType(InputType.TYPE_TEXT_VARIATION_FILTER);//输入一个电子邮件地址editText.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);//输入电子邮件主题行editText.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_SUBJECT);//输入一个密码editText.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);//输入老式的普通文本editText.setInputType(InputType.TYPE_TEXT_VARIATION_NORMAL);//输入人名editText.setInputType(InputType.TYPE_TEXT_VARIATION_PERSON_NAME);//输入邮寄地址editText.setInputType(InputType.TYPE_TEXT_VARIATION_POSTAL_ADDRESS);//输入语音发音输入文本,如联系人拼音名称字段editText.setInputType(InputType.TYPE_TEXT_VARIATION_PHONETIC);//输入URIeditText.setInputType(InputType.TYPE_TEXT_VARIATION_URI);//输入对用户可见的密码editText.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);//输入网页表单中的文本editText.setInputType(InputType.TYPE_TEXT_VARIATION_WEB_EDIT_TEXT);//输入网页表单中的邮件地址editText.setInputType(InputType.TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS);//输入网页表单中的密码editText.setInputType(InputType.TYPE_TEXT_VARIATION_WEB_PASSWORD);

下面是几个简单的例子:
/**
* 第一个例子:对用户可见的密码字段
*/
editText.setInputType(InputType.TYPE_CLASS_TEXT |
InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);

    /**     * 第二个例子:具有自动大写的多行邮寄地址     */    editText.setInputType(InputType.TYPE_CLASS_TEXT |            InputType.TYPE_TEXT_VARIATION_POSTAL_ADDRESS |            InputType.TYPE_TEXT_FLAG_MULTI_LINE);    /**     * 第三个例子:一个时间字段     */    editText.setInputType(InputType.TYPE_CLASS_DATETIME |            InputType.TYPE_DATETIME_VARIATION_TIME);

(2)在布局文件中使用android:inputType属性来设置:
//输入类型为没有指定明确的类型的特殊内容类型
android:inputType=”none”

//输入类型为普通文本android:inputType="text" //输入类型为数字文本 android:inputType="number"//输入类型为电话号码 android:inputType=”phone”//输入类型为日期和时间 android:inputType=”datetime” //输入类型为{@link#TYPE_CLASS_DATETIME}的缺省变化值,只允许输入一个日期。 android:inputType=”date” //输入类型为{@link#TYPE_CLASS_DATETIME}的缺省变化值,只允许输入一个时间。 android:inputType=”time”//输入类型为小数数字,允许十进制小数点提供分数值。 android:inputType="numberDecimal"//输入类型为数字是带符号的,允许在开头带正号或者负号 android:inputType="numberSigned"//输入类型为数字密码 android:inputType="numberPassword"//输入类型为自动完成文本类型 android:inputType="textAutoComplete"//输入类型为自动纠正文本类型 android:inputType="textAutoCorrect"//输入类型为所有字符大写 android:inputType="textCapCharacters"//输入类型为每句的第一个字符大写 android:inputType="textCapSentences"//输入类型为每个单词的第一个字母大写 android:inputType="textCapWords"//输入法多行文本 android:inputType="textImeMultiLine"//进行输入时,输入法无提示 android:inputType="textNoSuggestions" //输入一个短的,可能是非正式的消息,如即时消息或短信。 android:inputType="textShortMessage"//输入长内容,可能是正式的消息内容,比如电子邮件的主体 android:inputType="textLongMessage"//输入文本以过滤列表等内容 android:inputType="textFilter"//输入一个电子邮件地址 android:inputType="textEmailAddress"//输入电子邮件主题行 android:inputType="textEmailSubject"//输入一个密码 android:inputType="textPassword"//输入对用户可见的密码 android:inputType="textVisiblePassword"//输入人的姓名 android:inputType="textPersonName"//输入邮寄地址 android:inputType="textPostalAddress"//输入语音发音输入文本,如联系人拼音名称字段 android:inputType="textPhonetic"//输入URI android:inputType="textUri"//输入网页表单中的文本 android:inputType="textWebEditText"//输入网页表单中的邮件地址 android:inputType="textWebEmailAddress"//输入网页表单中的密码 android:inputType="textWebPassword"
原创粉丝点击