首先在广播接收者的onReceive()方法中写上下列代码:
通知的内容 String message = bundle.getString(JPushInterface.EXTRA_ALERT); Intent intent_dialog = new Intent(context, DialogUtilsActivity.class); intent_dialog.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent_dialog.putExtra("message",message);//传递参数到DialogUtilsActivity中。 context.startActivity(intent_dialog);
下面 是DialogUtilsActivity的代码:
//对话框的弹出Activity public class DialogUtilsActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.dialog_layout); initView(); } private void initView() { //点击这个Activity的边缘不会消失 this.setFinishOnTouchOutside(false); String title= "友情提示"; String message = getIntent().getStringExtra("message") ; //点击确定按钮的反应 Button btn_ensure = (Button) findViewById(R.id.dialog_ensure); btn_ensure.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { DialogUtilsActivity.this.finish(); } }); Button btn_cancle = (Button) findViewById(R.id.dialog_ensure2); btn_cancle.setVisibility(View.GONE); //设置标题 TextView tv_title = (TextView) findViewById(R.id.title); tv_title.setText(title); //设置提示内容 TextView tv_message = (TextView) findViewById(R.id.message); if(!StringUtils.isEmpty(message)){ tv_message.setText(message); } } }
下面是dialog_layout.xml的布局:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/shape_rec_little_nopadding" android:orientation="vertical"> <!-- 中间白色背景,两个TextView,标题和内容,留一个LinearLayout,在代码中根据调用动态加上按钮 --> <TextView android:id="@+id/title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/layout_margin_ten" android:gravity="center_horizontal" android:paddingTop="@dimen/layout_margin_ten" android:text="" android:textColor="@color/black" android:textSize="17sp" /> <!--横线--> <include layout="@layout/view" /> <TextView android:id="@+id/message" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="30dp" android:layout_marginTop="30dp" android:gravity="center" android:text="" android:textColor="@color/black" android:textSize="17sp" /> <include layout="@layout/view" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/dialog_ensure" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@null" android:gravity="center" android:paddingBottom="@dimen/layout_margin_ten" android:paddingTop="@dimen/layout_margin_ten" android:text="确认" android:textSize="17sp" /> <include layout="@layout/view_vertical" /> <Button android:id="@+id/dialog_ensure2" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@null" android:gravity="center" android:paddingBottom="@dimen/layout_margin_ten" android:paddingTop="@dimen/layout_margin_ten" android:text="取消" android:textSize="17sp" /> </LinearLayout> </LinearLayout>
在清单文件中的设置:
<!--全局dialog界面--> <activity android:name=".utils.DialogUtilsActivity" android:label="@string/app_name" android:screenOrientation="portrait" android:theme="@style/MyDialogStyleBottom"/>
其中style中的MyDialogStyleBottom:
<!--DialogActivity的style--> <style name="MyDialogStyleBottom" parent="android:Theme.Dialog"> <item name="android:windowFrame">@null</item> <!-- 边框 --> <item name="android:windowIsFloating">true</item> <!-- 是否浮现在activity之上 --> <item name="android:windowIsTranslucent">true</item> <!-- 半透明 --> <item name="android:windowNoTitle">true</item> <!-- 无标题 --> <item name="android:windowBackground">@android:color/transparent</item> <!-- 背景透明 --> <item name="android:backgroundDimEnabled">true</item> <!-- 模糊 --> </style>