一、很多情况下,app需要通知用户。android主要提供了三种通知的方法:Toast Notification、Status Bar
Notification、Dialog Notification。
二、Toast Notification是一种弹出到UI表面,并显视信息的一个组件。它不会影响用户当前Activity的可见性及交互性(事件),而且它会在一定时间后自动消息。
三、创建Toast Notification。最简单的方式是:Toast.makeText(context,text,duration).show();另外可以设置提醒的位置toast.setGravity();另外可以使用自定义的方式(写layout/xxx.xml文件,然后inflate)语法如下:new Toast(context).setGravity().setDuration().setView(layout).show();
四、Status Bar Notification是一种以图标或信息的方式出现在系统状态栏。当用户点击时,系统会触发一个Intent去启动相关的activity。你同时可以设置声音、振动、闪光等提醒。status bar notification适合于Service使用。如果是Activity使用,可以考虑用Dialog Notification。
五、status bar notification定制声音、震动、闪光。添加声音:notification.defaults+=Notifcation.DEFAULT_SOUND;notification.sound=Uri.parse("url")。震动:notification.defaults|=Notification.DEFAULT_VIBRATE;notification.vibrate={0,100,200,300}。闪光:notification.defaults|=Notification.DEFAULT_LIGHTS;notifcation.ledARGB=0xff00ff00;notification.ledOnMS=300;notification.ledOffMS=1000;notification.flags|=Notificatino.FLAG_SHOW_LIGHTS;
五、创建status bar notification。最简单的方式是:(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE).notify(id,new Notification(icon,tickerText,when).setLatestEventInfo(context,contentTitle,contentText,contentIntent));
六、Dialog Notification是一种让当前Activity失去焦点,并让Dialog弹出最前面与用户交互的提醒方式。
View view = View.inflate(MainActivity.this, R.layout.about, null); TextView textView = (TextView) view.findViewById(R.id.message); textView.setMovementMethod(LinkMovementMethod.getInstance()); textView.setText(R.string.Text_About); new AlertDialog.Builder(MainActivity.this).setTitle( R.string.Title_About).setView(view) .setPositiveButton(android.R.string.ok, null) .setIcon(R.drawable.icon).show();
about.xml
<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/scrollView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingTop="2dip" android:paddingBottom="12dip" android:paddingLeft="14dip" android:paddingRight="10dip"> <TextView android:id="@+id/message" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="5dip" android:linksClickable="true" /> </ScrollView>
这里要注意两个地方
linksClickable 为 true 必须setMovementMethod(LinkMovementMethod.getInstance()).
上面的方式不能直接跳转,只是可以用来点击。
而如果要跳转
则应该加上android:autoLink="web"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:paddingLeft="2dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical"> <!-- <TextView android:id="@+id/ABOUT_NAME" android:text="@string/app_name" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/ABOUT_VERSION" android:text="@string/app_name" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/ABOUT_URL" android:text="www.google.cn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:autoLink="web" /> --> <TextView android:id="@+id/ABOUT_COPYRIGHT" android:text="www.google.cn" android:linksClickable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:autoLink="web"/> </LinearLayout>
new AlertDialog.Builder(debugApp.this) .setTitle(R.string.hello) .setView(view).show();
public static class MyOtherAlertDialog { public static AlertDialog create(Context context) { final TextView message = new TextView(context); // i.e.: R.string.dialog_message => // "Test this dialog following the link to dtmilano.blogspot.com" final SpannableString s = new SpannableString(context.getText(R.string.dialog_message)); Linkify.addLinks(s, Linkify.WEB_URLS); message.setText(s); message.setMovementMethod(LinkMovementMethod.getInstance()); return new AlertDialog.Builder(context) .setTitle(R.string.dialog_title) .setCancelable(true) .setIcon(android.R.drawable.ic_dialog_info) .setPositiveButton(R.string.dialog_action_dismiss, null) .setView(message) .create(); } }
6.
final SpannableString stMyWeb = new SpannableString("http://android-er.blogspot.com/"); Linkify.addLinks(stMyWeb, Linkify.ALL); final AlertDialog aboutDialog = new AlertDialog.Builder(testLayout.this).setMessage(stMyWeb).setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub }}).create(); aboutDialog.show(); ((TextView)aboutDialog.findViewById(android.R.id.message)) .setMovementMethod(LinkMovementMethod.getInstance());
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:padding="5dip"<SPAN > android:linksClickable="true"</SPAN> />
错误提示TextView没有结束怎么办?
加了SPAN标签后,不认后面的/>了
1 安装eclipse 3.4.x http://www.eclipse.org/downloads/
2 安装sun java sdk 1.6, 并设置bin系统路径
3 打开eclipse, help->install new software..., 输入https://dl-ssl.google.com/android/eclipse/ 并安装该android开发插件
4 从移动mmarket下载OPhone sdk, 并安装。命令行下输入 java -jar ophone-sdk_windows-1.0-setup.jar
5 在eclipse IDE, windows->preference->android 中设置android sdk路径
6 拷贝OPhone SDK文档ophone.sdk.doc_1.0.0.jar到\eclipse\plugins
7 把oms.jar添加到用户库:http://www.ophonesdn.com/article/show/17
8 安装OPhone定制的ADT:http://www.ophonesdn.com/documentation/ophone/gettingstarted/installing_adt.html
原文地址:http://blog.csdn.net/iefreer/archive/2009/10/07/4639546.aspx