- 浏览: 562229 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
0759cxz:
good job!
Android 同时使用多个library时的问题 -
zhouxiaoli521:
lgj452555712 写道cursor 没有关闭,最好加上 ...
Android sqlite中判断某个表是否存在方法 -
lgj452555712:
cursor 没有关闭,最好加上finally 后关上fina ...
Android sqlite中判断某个表是否存在方法 -
zhouxiaoli521:
zhouxiaoli521 写道weinifk 写道publi ...
StringBuffer的setLength -
zhouxiaoli521:
weinifk 写道public static void ma ...
StringBuffer的setLength
作者:webabcd
介绍
在 Android 中种对话框及各种通知效果的应用
- 常用对话框的使用,弹出式对话框、日期选择对话框、时间选择对话框、进度条对话框
- 通知(出现在通知列表)和提示性通知(Toast)的演示
1、常用对话框的演示
res/layout/main.xml
代码
<!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:id="@+id/txtMsg" android:layout_width="wrap_content"
android:layout_height="wrap_content"></TextView>
<Button android:id="@+id/btn1" android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:id="@+id/btn2" android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:id="@+id/btn3" android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:id="@+id/btn4" android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:id="@+id/btn5" android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:id="@+id/btn6" android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:id="@+id/txtMsg" android:layout_width="wrap_content"
android:layout_height="wrap_content"></TextView>
<Button android:id="@+id/btn1" android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:id="@+id/btn2" android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:id="@+id/btn3" android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:id="@+id/btn4" android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:id="@+id/btn5" android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:id="@+id/btn6" android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
</LinearLayout>
res/layout/view.xml
代码
<!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:text="我是一个 View"
android:layout_width="wrap_content" android:layout_height="wrap_content">
</TextView>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:text="我是一个 View"
android:layout_width="wrap_content" android:layout_height="wrap_content">
</TextView>
</LinearLayout>
res/values/array.xml
<!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><?xml version="1.0" encoding="utf-8"?>
<resources>
<!--
定义一个名为 ary 的 string 类型的数组
-->
<string-array name="ary">
<item>项目 1</item>
<item>项目 2</item>
</string-array>
</resources>
<resources>
<!--
定义一个名为 ary 的 string 类型的数组
-->
<string-array name="ary">
<item>项目 1</item>
<item>项目 2</item>
</string-array>
</resources>
Main.java
代码
<!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
-->package com.webabcd.dialog;
import java.util.Calendar;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.app.TimePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.view.View;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.Button;
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 弹出式对话框的 Demo。先调用 Builder(),在 Create(), 需要显示对话框的是后再调用 show()
AlertDialog dialog = new AlertDialog.Builder(this).setTitle("弹出对话框").create();
dialog.show();
// 以下是各种对话框的 Demo
MyButtonClickListener listener = new MyButtonClickListener();
Button btn1 = (Button) this.findViewById(R.id.btn1);
btn1.setText("简单的对话框的 Demo");
btn1.setOnClickListener(listener);
Button btn2 = (Button) this.findViewById(R.id.btn2);
btn2.setText("包括常用设置的对话框(数据来自 xml)");
btn2.setOnClickListener(listener);
Button btn3 = (Button) this.findViewById(R.id.btn3);
btn3.setText("弹出的对话框的内容是一个 View");
btn3.setOnClickListener(listener);
Button btn4 = (Button) this.findViewById(R.id.btn4);
btn4.setText("日期选择对话框");
btn4.setOnClickListener(listener);
Button btn5 = (Button) this.findViewById(R.id.btn5);
btn5.setText("时间选择对话框");
btn5.setOnClickListener(listener);
Button btn6 = (Button) this.findViewById(R.id.btn6);
btn6.setText("进度条对话框");
btn6.setOnClickListener(listener);
}
class MyButtonClickListener implements View.OnClickListener {
@Override
public void onClick(View v) {
// 具体的对话框的实现可以通过重写 onCreateDialog 完成
switch (v.getId()) {
case R.id.btn1:
Main.this.showDialog(0);
break;
case R.id.btn2:
Main.this.showDialog(1);
break;
case R.id.btn3:
Main.this.showDialog(2);
break;
case R.id.btn4:
Main.this.showDialog(3);
break;
case R.id.btn5:
Main.this.showDialog(4);
break;
case R.id.btn6:
Main.this.showDialog(5);
break;
}
}
}
@Override
public Dialog onCreateDialog(int id) {
switch (id) {
case 0:
// 一个简单的弹出对话框
return new AlertDialog.Builder(this).setTitle("这是一个简单的弹出对话框的 Demo")
.create();
case 1:
// 一个相对复杂的弹出对话框
return new AlertDialog.Builder(this)
.setTitle("标题") // 设置标题
// .setCustomTitle(View) // 以一个 View 作为标题
.setIcon(R.drawable.icon01) // 设置标题图片
// .setMessage("信息") // 需要显示的弹出内容
.setPositiveButton("确定", new OnClickListener() { // 设置弹框的确认按钮所显示的文本,以及单击按钮后的响应行为
@Override
public void onClick(DialogInterface a0, int a1) {
TextView txtMsg = (TextView) Main.this.findViewById(R.id.txtMsg);
txtMsg.append("单击了对话框上的“确认”按钮\n");
}
})
.setItems(R.array.ary, new DialogInterface.OnClickListener() { // 弹框所显示的内容来自一个数组。数组中的数据会一行一行地依次排列
public void onClick(DialogInterface dialog, int which) {
}
})
// 其他常用方法如下
// .setMultiChoiceItems(arg0, arg1, arg2)
// .setSingleChoiceItems(arg0, arg1, arg2)
// .setNeutralButton(arg0, arg1)
// .setNegativeButton(arg0, arg1)
.create();
case 2:
// 弹出对话框为指定的 View 的 Demo
return new AlertDialog.Builder(this).setTitle("此对话框的内容是一个 View")
.setView(this.findViewById(R.layout.view)).create();
case 3:
// 弹出日期选择对话框
Calendar c = Calendar.getInstance();
return new DatePickerDialog(this, new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
TextView txtMsg = (TextView) Main.this.findViewById(R.id.txtMsg);
txtMsg.append("新设置的日期为:" + String.valueOf(year) + "-"
+ String.valueOf(monthOfYear) + "-"
+ String.valueOf(dayOfMonth) + "\n");
}
}, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DATE));
case 4:
// 弹出时间选择对话框
Calendar c2 = Calendar.getInstance();
return new TimePickerDialog(this, new OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
TextView txtMsg = (TextView) Main.this.findViewById(R.id.txtMsg);
txtMsg.append("新设置的时间为:"
+ String.valueOf(hourOfDay) + ":"
+ String.valueOf(minute) + "\n");
}
}, c2.get(Calendar.HOUR), c2.get(Calendar.MINUTE), true);
case 5:
// 弹出进度条对话框
ProgressDialog progress = new ProgressDialog(this);
progress.setMessage("loading...");
return progress;
default:
return null;
}
}
}
import java.util.Calendar;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.app.TimePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.view.View;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.Button;
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 弹出式对话框的 Demo。先调用 Builder(),在 Create(), 需要显示对话框的是后再调用 show()
AlertDialog dialog = new AlertDialog.Builder(this).setTitle("弹出对话框").create();
dialog.show();
// 以下是各种对话框的 Demo
MyButtonClickListener listener = new MyButtonClickListener();
Button btn1 = (Button) this.findViewById(R.id.btn1);
btn1.setText("简单的对话框的 Demo");
btn1.setOnClickListener(listener);
Button btn2 = (Button) this.findViewById(R.id.btn2);
btn2.setText("包括常用设置的对话框(数据来自 xml)");
btn2.setOnClickListener(listener);
Button btn3 = (Button) this.findViewById(R.id.btn3);
btn3.setText("弹出的对话框的内容是一个 View");
btn3.setOnClickListener(listener);
Button btn4 = (Button) this.findViewById(R.id.btn4);
btn4.setText("日期选择对话框");
btn4.setOnClickListener(listener);
Button btn5 = (Button) this.findViewById(R.id.btn5);
btn5.setText("时间选择对话框");
btn5.setOnClickListener(listener);
Button btn6 = (Button) this.findViewById(R.id.btn6);
btn6.setText("进度条对话框");
btn6.setOnClickListener(listener);
}
class MyButtonClickListener implements View.OnClickListener {
@Override
public void onClick(View v) {
// 具体的对话框的实现可以通过重写 onCreateDialog 完成
switch (v.getId()) {
case R.id.btn1:
Main.this.showDialog(0);
break;
case R.id.btn2:
Main.this.showDialog(1);
break;
case R.id.btn3:
Main.this.showDialog(2);
break;
case R.id.btn4:
Main.this.showDialog(3);
break;
case R.id.btn5:
Main.this.showDialog(4);
break;
case R.id.btn6:
Main.this.showDialog(5);
break;
}
}
}
@Override
public Dialog onCreateDialog(int id) {
switch (id) {
case 0:
// 一个简单的弹出对话框
return new AlertDialog.Builder(this).setTitle("这是一个简单的弹出对话框的 Demo")
.create();
case 1:
// 一个相对复杂的弹出对话框
return new AlertDialog.Builder(this)
.setTitle("标题") // 设置标题
// .setCustomTitle(View) // 以一个 View 作为标题
.setIcon(R.drawable.icon01) // 设置标题图片
// .setMessage("信息") // 需要显示的弹出内容
.setPositiveButton("确定", new OnClickListener() { // 设置弹框的确认按钮所显示的文本,以及单击按钮后的响应行为
@Override
public void onClick(DialogInterface a0, int a1) {
TextView txtMsg = (TextView) Main.this.findViewById(R.id.txtMsg);
txtMsg.append("单击了对话框上的“确认”按钮\n");
}
})
.setItems(R.array.ary, new DialogInterface.OnClickListener() { // 弹框所显示的内容来自一个数组。数组中的数据会一行一行地依次排列
public void onClick(DialogInterface dialog, int which) {
}
})
// 其他常用方法如下
// .setMultiChoiceItems(arg0, arg1, arg2)
// .setSingleChoiceItems(arg0, arg1, arg2)
// .setNeutralButton(arg0, arg1)
// .setNegativeButton(arg0, arg1)
.create();
case 2:
// 弹出对话框为指定的 View 的 Demo
return new AlertDialog.Builder(this).setTitle("此对话框的内容是一个 View")
.setView(this.findViewById(R.layout.view)).create();
case 3:
// 弹出日期选择对话框
Calendar c = Calendar.getInstance();
return new DatePickerDialog(this, new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
TextView txtMsg = (TextView) Main.this.findViewById(R.id.txtMsg);
txtMsg.append("新设置的日期为:" + String.valueOf(year) + "-"
+ String.valueOf(monthOfYear) + "-"
+ String.valueOf(dayOfMonth) + "\n");
}
}, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DATE));
case 4:
// 弹出时间选择对话框
Calendar c2 = Calendar.getInstance();
return new TimePickerDialog(this, new OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
TextView txtMsg = (TextView) Main.this.findViewById(R.id.txtMsg);
txtMsg.append("新设置的时间为:"
+ String.valueOf(hourOfDay) + ":"
+ String.valueOf(minute) + "\n");
}
}, c2.get(Calendar.HOUR), c2.get(Calendar.MINUTE), true);
case 5:
// 弹出进度条对话框
ProgressDialog progress = new ProgressDialog(this);
progress.setMessage("loading...");
return progress;
default:
return null;
}
}
}
2、各种提示效果的演示
res/layout/main.xml
代码
<!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button android:id="@+id/btn1" android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:id="@+id/btn2" android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:id="@+id/btn3" android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:id="@+id/btn4" android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button android:id="@+id/btn1" android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:id="@+id/btn2" android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:id="@+id/btn3" android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:id="@+id/btn4" android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
</LinearLayout>
res/layout/view.xml
代码
<!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:id="@+id/txtMsg" android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:id="@+id/txtMsg" android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>
</LinearLayout>
Main.java
代码
<!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
-->package com.webabcd.notification;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 通过 Tost.makeText().show() 来实现提示性的通知效果
// 短时间的提示性通知的 Demo
Button btn1 = (Button) this.findViewById(R.id.btn1);
btn1.setText("短时间提示");
btn1.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
Toast.makeText(Main.this, "我是短时间提示", Toast.LENGTH_SHORT).show();
}
});
// 长时间的提示性通知的 Demo
Button btn2 = (Button) this.findViewById(R.id.btn2);
btn2.setText("长时间提示");
btn2.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
Toast.makeText(Main.this, "我是长时间提示", Toast.LENGTH_LONG).show();
}
});
// 以一个 View 作为提示性通知的 Demo
Button btn3 = (Button) this.findViewById(R.id.btn3);
btn3.setText("以一个 View 做提示");
btn3.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
View view = inflateView(R.layout.view);
TextView txtMsg = (TextView) view.findViewById(R.id.txtMsg);
txtMsg.setText("提示内容");
Toast toast = new Toast(Main.this);
toast.setView(view);
toast.setDuration(Toast.LENGTH_LONG);
toast.show();
}
});
Button btn4 = (Button) this.findViewById(R.id.btn4);
btn4.setText("发出一个通知(Notification)");
btn4.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
// 实例化通知管理器
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
// 指定单击通知后所打开的详细的通知页面(单击通知后打开 NotificationView)
PendingIntent contentIntent = PendingIntent.getActivity(
Main.this, 0, new Intent(Main.this, NotificationView.class), 0);
// 实例化一个通知,并指定其图标和标题(在提示栏上显示)
Notification n = new Notification(R.drawable.icon01, "我是滚动的通知信息我是滚动的通知信息我是滚动的通知信息", System.currentTimeMillis());
// 设置通知的发送人和通知的详细内容(打开提示栏后在通知列表中显示)
n.setLatestEventInfo(Main.this, "通知发送人", "我是详细的通知信息我是详细的通知信息我是详细的通知信息", contentIntent);
// 100 毫秒延迟后,震动 250 毫秒,暂停 100 毫秒后,再震动 500 毫秒
n.vibrate = new long[] { 100, 250, 100, 500 };
// 发出通知(其中第一个参数为通知标识符)
nm.notify(0, n);
}
});
}
// 将指定的 xml 资源转换为一个 View
private View inflateView(int resource) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
return vi.inflate(resource, null);
}
// 打开详细通知页后此 Activity 会被 Pause,从详细通知页返回后此 Activity 会被 Resume
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
Log.d("MyDebug", "onPause");
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Log.d("MyDebug", "onResume");
}
}
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 通过 Tost.makeText().show() 来实现提示性的通知效果
// 短时间的提示性通知的 Demo
Button btn1 = (Button) this.findViewById(R.id.btn1);
btn1.setText("短时间提示");
btn1.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
Toast.makeText(Main.this, "我是短时间提示", Toast.LENGTH_SHORT).show();
}
});
// 长时间的提示性通知的 Demo
Button btn2 = (Button) this.findViewById(R.id.btn2);
btn2.setText("长时间提示");
btn2.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
Toast.makeText(Main.this, "我是长时间提示", Toast.LENGTH_LONG).show();
}
});
// 以一个 View 作为提示性通知的 Demo
Button btn3 = (Button) this.findViewById(R.id.btn3);
btn3.setText("以一个 View 做提示");
btn3.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
View view = inflateView(R.layout.view);
TextView txtMsg = (TextView) view.findViewById(R.id.txtMsg);
txtMsg.setText("提示内容");
Toast toast = new Toast(Main.this);
toast.setView(view);
toast.setDuration(Toast.LENGTH_LONG);
toast.show();
}
});
Button btn4 = (Button) this.findViewById(R.id.btn4);
btn4.setText("发出一个通知(Notification)");
btn4.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
// 实例化通知管理器
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
// 指定单击通知后所打开的详细的通知页面(单击通知后打开 NotificationView)
PendingIntent contentIntent = PendingIntent.getActivity(
Main.this, 0, new Intent(Main.this, NotificationView.class), 0);
// 实例化一个通知,并指定其图标和标题(在提示栏上显示)
Notification n = new Notification(R.drawable.icon01, "我是滚动的通知信息我是滚动的通知信息我是滚动的通知信息", System.currentTimeMillis());
// 设置通知的发送人和通知的详细内容(打开提示栏后在通知列表中显示)
n.setLatestEventInfo(Main.this, "通知发送人", "我是详细的通知信息我是详细的通知信息我是详细的通知信息", contentIntent);
// 100 毫秒延迟后,震动 250 毫秒,暂停 100 毫秒后,再震动 500 毫秒
n.vibrate = new long[] { 100, 250, 100, 500 };
// 发出通知(其中第一个参数为通知标识符)
nm.notify(0, n);
}
});
}
// 将指定的 xml 资源转换为一个 View
private View inflateView(int resource) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
return vi.inflate(resource, null);
}
// 打开详细通知页后此 Activity 会被 Pause,从详细通知页返回后此 Activity 会被 Resume
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
Log.d("MyDebug", "onPause");
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Log.d("MyDebug", "onResume");
}
}
NotificationView.java
代码
<!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
-->package com.webabcd.notification;
import android.app.Activity;
import android.app.NotificationManager;
import android.os.Bundle;
import android.widget.TextView;
// 单击通知列表的某个通知后,所打开的详细的通知页
public class NotificationView extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view);
TextView txtMsg = (TextView)this.findViewById(R.id.txtMsg);
txtMsg.setText("点通知之后所链接到的 Activity");
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
// 取消显示在通知列表中的指定通知(参数为通知标识符)
nm.cancel(0);
// 需要关闭此 Activity 的话就 finish 它既可
// this.finish();
}
}
import android.app.Activity;
import android.app.NotificationManager;
import android.os.Bundle;
import android.widget.TextView;
// 单击通知列表的某个通知后,所打开的详细的通知页
public class NotificationView extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view);
TextView txtMsg = (TextView)this.findViewById(R.id.txtMsg);
txtMsg.setText("点通知之后所链接到的 Activity");
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
// 取消显示在通知列表中的指定通知(参数为通知标识符)
nm.cancel(0);
// 需要关闭此 Activity 的话就 finish 它既可
// this.finish();
}
}
发表评论
-
Android NDK开发环境搭建_r8
2014-04-23 16:32 1081本文主内容: 1、 Android NDK 安装 2、 ... -
Android java.lang.VerifyError 异常解决办法
2014-04-01 13:58 4592通常这个异常的问题出现在jar包上 我的情况是 sdk ... -
Android —— 关于ADT 17的BuildConfig.DEBUG
2014-03-21 11:02 1156在日常开发中,我们使用android.util.Lo ... -
Android 让多个Fragment 切换时不重新实例化
2013-12-05 18:48 1457在项目中需要进行Fragment的切换,一直都是用repla ... -
android学习—— context 和 getApplicationContext()
2013-09-22 11:08 1931在android中常常会遇到与context有关的内容 浅 ... -
Android requestFeature() must be called before adding content
2013-07-08 17:18 2369E/AndroidRuntime( 408): androi ... -
Android onActivityResult和横屏
2013-06-20 16:48 1833做一个项目 页面强制横屏 两个activity需要交互 现 ... -
Android 无法加载fragment的问题
2013-06-17 14:42 2453在项目中继承了fragment 重写了构造函数 make ... -
android源码解读一(Context)
2013-04-27 19:16 1791Context类 Context是一个抽象类 publi ... -
Android 4.1 动态加载APK中的资源
2013-04-24 17:29 4188*** is not owned by the curr ... -
Android ADT中增大AVD内存后无法启动:emulator failed to allocate memory 8
2013-04-15 15:45 1799过程中,增大对应AVD的 ... -
Android下面的MD5加密
2013-04-08 12:17 1000网上关于android下MD5加密的资料很多,但是测试了下 ... -
Android 调用系统应用程序信息(Application Info)界面
2013-03-15 18:30 1269“Android系统设置->应用程序->管理应用 ... -
Android Dialog背景透明和黑暗度
2013-03-14 18:20 4094设置透明度,主要设置的是dialog自身的透明度 ... -
全局监听SCREEN_ON和SCREEN_OFF的替代方法--监听屏幕解锁事件
2013-03-08 12:17 3039在做一个程序的时候,需要时刻保持某一服务是启动的, ... -
Android 退出应用程序
2013-01-21 10:53 924android.os.Process.killProcess ... -
Android控件WebView(浏览器)常用功能(图片、缩放)例子介绍
2012-11-06 11:03 2546Android系统默认提供WebView控件(view)来在应 ... -
Android ProgressBar使用.9图在部分android手机上显示异常!
2012-11-05 10:18 2169写道 我使用的是progressbar.xml配置文 ... -
Android 同时使用多个library时的问题
2012-10-29 12:40 1618剧情是这样,我的app要使用两个library,如:Li ... -
android圆形进度条ProgressBar颜色设置
2012-07-29 15:14 1361总结的挺全面 http://aichixihongshi.i ...
相关推荐
Android Dialog 即 Android对话框,在Android开发中,我们经常会需要在Android界面上弹出一些对话框,以询问用户或者让用户选择。Android Dialog 一般有五种,分别是:一般对话框,列表对话框,单选按钮对话框,多选...
在本文中,我们将深入探讨如何在Android应用中创建和使用普通的Dialog。 首先,我们来了解Dialog的基本概念。Dialog通常包含一个标题(title)、消息(message)以及一到多个按钮(如“确定”、“取消”等)。它们...
3. AlertDialog.Builder和DialogFragment:Builder类简化了创建AlertDialog的过程,而DialogFragment则是在Android 3.0(API 11)引入的,方便在Fragment中管理Dialog。 接下来,我们详细讨论如何创建和使用Dialog...
Android-所有Dialog对话框(源码).zip Android-所有Dialog对话框(源码).zip Android-所有Dialog对话框(源码).zip
### Android UI篇——Dialog(对话框) 在Android应用开发中,对话框(Dialog)作为用户交互的重要组成部分之一,被广泛应用于各种场景下,比如提示信息、请求确认操作、登录界面等。本文将深入探讨Android中Dialog的...
使用第三方库如`android-dialog-animation`或`SweetAlertDialog`可以快速实现各种动画效果,而无需从头编写所有动画代码。 6. **示例应用**: `Demo_Dialog`很可能是包含上述功能的示例代码,开发者可以通过查看和...
在Android开发中,对话框(Dialog)是一种非常重要的组件,用于与用户进行交互,提供临时的通知或选项。对话框不会占用整个屏幕,而是浮现在应用界面之上,吸引用户的注意力。本教程将详细介绍如何在Android中创建和...
在Android开发中,对话框(Dialog)是一种非常重要的组件,用于与用户进行交互,提供临时信息或者需要用户做出选择的情况。本实例将带你深入了解如何在Android应用中使用Dialog,并通过实际操作来提升你的编程技能。...
AlertDialog是Android SDK提供的一种内置对话框类型,它提供了多种样式和行为,可以用于展示警告、确认或简单的选择操作。通常,AlertDialog包含一个标题、一个可选的消息文本,以及一个或多个按钮,如“确定”、...
在Android开发中,`Dialog`是一种非常常见的组件,它用于在主界面之上显示临时的、半透明的窗口,用于向用户展示信息或者进行简单的交互。本篇将详细讲解三种类型的`Dialog`:普通对话框、日期选择对话框、时间选择...
移动互联网应用
Android开发实战经典_020703_对话框:Dialog源代码和视频教程.zip
android原生的dialog太生硬了,看到开源的sweet-alert-dialog 对话框感觉不错 ,我根据个人的需要基于sweet-alert-dialog做了一些修改 自我感觉挺好看 大家需要的话 可以下下来研究下
在Android开发中,自定义对话框(Dialog)是提升用户体验的重要手段之一,它允许开发者根据应用的风格和需求创建独特且吸引人的交互界面。本文将深入探讨如何在Android中实现自定义对话框,并进行界面美化。 首先,...
本资料包"Android移动开发-对话框.zip"可能包含一个名为"Dialog-master"的项目,它可能是一个示例工程,用于演示如何在Android应用中创建和使用对话框。 Android中的对话框主要分为以下几种类型: 1. **...
Sweet Alert Dialog是一款流行的开源库,它为Android提供了美观、可定制化的对话框,使得开发者能够轻松地创建出与系统风格相协调且具有吸引力的提示界面。这个项目"Android漂亮的对话框项目sweet-alert-dialog"源自...
Dialog - 对话框 FilterBar - 筛选栏 Gallery - 画廊 KeyBoard - 键盘 Loading - 指示器 Notification - 通知 Picker - 选择器 Prompt - 提示信息 Qrcode - 二维码 Rater - 评分组件 Refresher - 下拉刷新 Toast - ...