求知 文章 文库 Lib 视频 Code iProcess 课程 认证 咨询 工具 火云堂 讲座吧   成长之路  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 
 

Android开发教程
Android 开发环境配置
Android 架构
Android 应用组件
Android Hello World示例
Android 资源组织和访问
Android Activity
Android Service
Android 广播接收器
Android 内容提供者
Android 碎片/片段
Android Intent过滤器
Android UI布局
Android UI控件
Android 事件处理
Android 样式和主题
Android 自定义组件
Android 拖放
Android 通知
Android 基于位置服务
Android 发送电子邮件
Android 发送短信/SMS
Android 拨打电话
发布Android应用
ndroid Alertdialog
Android Animation实例
Android音频捕获
Android音频管理器实例
Android
Android最佳实践
Android Bluetooth实例
Android Camera
Android Clipboard
Android自定义字体
Android数据备份
Android Gestures/手势
Android图片效果
Android图片切换
Android内部存储
Android JetPlayer实例
Android JSON解析器
Android加载Spinner
Android本地化
Android登录实例
Android MediaPlayer
 
 

Android Alertdialog(警告对话框)
96 次浏览
25次
 捐助

在应用程序中有些时候,如果想询问用户采取决定是或否所采取的特殊动作的回应,由停在原来的活动而不改变屏幕,可以使用警告对话框(Alert Dialog)。

要使用一个警告对话框,需要一个AlertDialogBuilder对象使用它的内部类AlertDialog。它的语法如下面给出:

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);

现在使用AlertDialogBuilder类的对象,设置正(是)或负性(否)按钮。它的语法如下:

alertDialogBuilder.setPositiveButton(CharSequence text, DialogInterface.OnClickListener listener)
    alertDialogBuilder.setNegativeButton(CharSequence text, DialogInterface.OnClickListener listener)

除此之外,可以使用生成器类提供的其它功能自定义警告对话框。这些在下面列出:

创建和设置对话框构建器之后,将通过调用生成器类的 create()方法创建一个警告对话框。它的语法如下:

AlertDialog alertDialog = alertDialogBuilder.create();
    alertDialog.show();

这将创建警告对话框,并会显示在屏幕上。

导例子

下面的例子演示如何使用Android AlertDialog。它采用了三种不同的活动演示它。该对话框询问跳转到正的活动,或取消跳到负的活动。

为了试验这个例子,需要在模拟器或实际设备上运行。

程序:

这里是修改后的代码 src/com.yiibai.alertdialog/MainActivity.java

package com.example.alertdialog;
    import com.example.alertdialog.*;
    import android.os.Bundle;
    import android.app.Activity;
    import android.app.AlertDialog;
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.view.Menu;  import android.view.View;
    public class MainActivity extends Activity {
       @Override
       protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
     }
  	 public void open(View view){  
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
        alertDialogBuilder.setMessage(R.string.decision);
        alertDialogBuilder.setPositiveButton(R.string.positive_button,
         new DialogInterface.OnClickListener() {
  		         @Override  
           public void onClick(DialogInterface arg0, int arg1) {
              Intent positveActivity = new Intent(getApplicationContext(),com.example.alertdialog.PositiveActivity.class);
              startActivity(positveActivity);
  			           }  
      });
        alertDialogBuilder.setNegativeButton(R.string.negative_button,
         new DialogInterface.OnClickListener() {
  		@Override
           public void onClick(DialogInterface dialog, int which) {
              Intent negativeActivity = new Intent(getApplicationContext(),com.example.alertdialog.NegativeActivity.class);
              startActivity(negativeActivity);
  		 }
        });
  	            AlertDialog alertDialog = alertDialogBuilder.create();
        alertDialog.show();
  	         }   
    @Override
     public boolean onCreateOptionsMenu(Menu menu) { 
       // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
     }
  }

下面是默认代码 src/com.yiibai.alertdialog/PositiveActivity.java

package com.example.alertdialog;
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    public class PositiveActivity extends Activity {
       @Override
       protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_positive);
      }
       @Override
       public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.positive, menu);
        return true;
     }
    }

下面是默认代码 src/com.yiibai.alertdialog/NegativeActivity.java


package com.example.alertdialog; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class NegativeActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_negative); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.negative, menu); return true; } }

这里是修改后的代码 res/layout/activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:paddingBottom="@dimen/activity_vertical_margin"
     android:paddingLeft="@dimen/activity_horizontal_margin"
     android:paddingRight="@dimen/activity_horizontal_margin"
     android:paddingTop="@dimen/activity_vertical_margin"
     tools:context=".MainActivity" >
      <Button
       android:id="@+id/button1"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentTop="true"
       android:layout_centerHorizontal="true"
       android:layout_marginTop="170dp"
       android:onClick="open"
       android:text="@string/hello_world" /> 
   </RelativeLayout>

这里是修改后的代码 res/layout/activity_positive.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:paddingBottom="@dimen/activity_vertical_margin"
     android:paddingLeft="@dimen/activity_horizontal_margin"
     android:paddingRight="@dimen/activity_horizontal_margin"
     android:paddingTop="@dimen/activity_vertical_margin"
     tools:context=".PositiveActivity" >
       <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="14dp"
        android:layout_marginTop="20dp"
        android:text="@string/positive"
        android:textAppearance="?android:attr/textAppearanceLarge" />
    </RelativeLayout>

这里是修改后的代码res/layout/activity_negative.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:paddingBottom="@dimen/activity_vertical_margin"
     android:paddingLeft="@dimen/activity_horizontal_margin"
     android:paddingRight="@dimen/activity_horizontal_margin"
     android:paddingTop="@dimen/activity_vertical_margin"
     tools:context=".NegativeActivity" >
       <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="14dp"
        android:layout_marginTop="17dp"
        android:text="@string/negative"
        android:textAppearance="?android:attr/textAppearanceLarge" />
    </RelativeLayout>

这里是修改后的代码 Strings.xml

<?xml version="1.0" encoding="utf-8"?>
    <resources>
       <string name="app_name">AlertDialog</string>
       <string name="action_settings">Settings</string>
       <string name="hello_world">Hello world!</string>
       <string name="title_activity_positive">PositiveActivity</string>
       <string name="title_activity_negative">NegativeActivity</string>
       <string name="positive">Positive Activity</string>
       <string name="negative">Negative Activity</string>
       <string name="decision">Are you sure, you wanted to make this decision</string>
       <string name="positive_button">+ive</string>
       <string name="negative_button">-ive</string>
    </resources>

这里是默认的代码 AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.yiibai.alertdialog"
        android:versionCode="1"
        android:versionName="1.0" >
       <uses-sdk
          android:minSdkVersion="8"
          android:targetSdkVersion="17" />
       <application
          android:allowBackup="true"
          android:icon="@drawable/ic_launcher"
          android:label="@string/app_name"
          android:theme="@style/AppTheme" >
        <activity
           android:name="com.yiibai.alertdialog.MainActivity"
           android:label="@string/app_name" >
           <intent-filter>
              <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
           </intent-filter>
        </activity>
        <activity
           android:name="com.yiibai.alertdialog.PositiveActivity"
           android:label="@string/title_activity_positive" >
        </activity>
        <activity
           android:name="com.yiibai.alertdialog.NegativeActivity"
           android:label="@string/title_activity_negative" >
        </activity>
  </application>
</manifest>

从Android Studio 中运行应用程序,打开你的项目的活动文件中的一个,并在工具栏点击运行图标图标。启动应用程序之前会显示如下窗口,选择要运行 Android应用程序的选项

选择移动设备作为一个选项,然后查看移动设备将显示如下界面:

现在,轻按按钮“hello world”看到警告框,这将是这样的

现在,选择任意两个按钮中的一个,看到了各自的活动装载启动起来。如果选择"positve"按钮,此屏幕会出现

现在按后退按钮,这一次从警告对话框中选择“negative”。下面的屏幕会出现在这个时间


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



96 次浏览
25次
 捐助
 

每天2个文档/视频
扫描微信二维码订阅
订阅技术月刊
获得每月300个技术资源
 
 

关于我们 | 联系我们 | 京ICP备10020922号 京公海网安备110108001071号