步步为营_Android开发课[18]_用户界面之Dialog(对话框)

来源:互联网 发布:js模拟键盘按键 编辑:程序博客网 时间:2024/04/30 07:30

Focus on technology, enjoy life!—— QQ:804212028
浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305


  • 主题:用户界面之Dialog(对话框)

Dialog(对话框)实例:

activity_main.xml源代码:

<?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_height="wrap_content"        android:layout_width="fill_parent"        android:text="简易对话框"    />    <Button         android:id="@+id/btn2"        android:layout_height="wrap_content"        android:layout_width="fill_parent"        android:text="列表选择框"    />    <Button         android:id="@+id/btn3"        android:layout_height="wrap_content"        android:layout_width="fill_parent"        android:text="第一种进度条框"    />    <Button         android:id="@+id/btn4"        android:layout_height="wrap_content"        android:layout_width="fill_parent"        android:text="第二种进度条框"    /></LinearLayout>

MainActivity.java源代码:

import android.app.Activity;import android.app.AlertDialog;import android.app.ProgressDialog;import android.content.DialogInterface;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity implements OnClickListener{    private Button btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        init();    }    private void init() {        btn1 =(Button)findViewById(R.id.btn1);        btn1.setOnClickListener(this);        btn2 =(Button)findViewById(R.id.btn2);        btn2.setOnClickListener(this);        btn3 =(Button)findViewById(R.id.btn3);        btn3.setOnClickListener(this);        btn4 =(Button)findViewById(R.id.btn4);        btn4.setOnClickListener(this);    }    @Override    public void onClick(View v) {        switch(v.getId()){        case R.id.btn1:            AlertDialog.Builder builder0 = new AlertDialog.Builder(MainActivity.this);            builder0.setIcon(R.drawable.ic_launcher);            builder0.setTitle("对话框");            builder0.setMessage("你是准备去打酱油吗?");            //设定积极按钮事件            builder0.setPositiveButton("确认", new DialogInterface.OnClickListener() {                public void onClick(DialogInterface arg0, int arg1) {                    Toast.makeText(MainActivity.this, "点击了--确认",                             Toast.LENGTH_SHORT).show();                }            });            //设定消极按钮事件            builder0.setNegativeButton("取消", new DialogInterface.OnClickListener() {                public void onClick(DialogInterface arg0, int arg1) {                    Toast.makeText(MainActivity.this, "点击了--取消",                             Toast.LENGTH_SHORT).show();                }            });            builder0.create().show();            break;        case R.id.btn2:            final String[] mItems = { "item0", "item1", "itme2", "item3", "itme4",                    "item5", "item6" };            AlertDialog.Builder builder1 = new AlertDialog.Builder(MainActivity.this);            builder1.setTitle("列表选择框");            builder1.setItems(mItems, new DialogInterface.OnClickListener() {                public void onClick(DialogInterface dialog, int which) {                    Toast.makeText(MainActivity.this, mItems[which],                             Toast.LENGTH_SHORT).show();                }            });            builder1.create().show();            break;        case R.id.btn3:            ProgressDialog mProgressDialog = new ProgressDialog(MainActivity.this);            mProgressDialog.setIcon(R.drawable.ic_launcher);            mProgressDialog.setTitle("第一种进度条框");            //设定进度条风格            mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);            //设定进度条最大值            mProgressDialog.setMax(75);            mProgressDialog.setButton("确认",new DialogInterface.OnClickListener() {                public void onClick(DialogInterface arg0, int arg1) {                    Toast.makeText(MainActivity.this, "点击了--确认",                             Toast.LENGTH_SHORT).show();                }            });            mProgressDialog.setButton("取消",new DialogInterface.OnClickListener() {                public void onClick(DialogInterface arg0, int arg1) {                    Toast.makeText(MainActivity.this, "点击了--取消",                             Toast.LENGTH_SHORT).show();                }            });            mProgressDialog.show();            break;        case R.id.btn4:            mProgressDialog = new ProgressDialog(this);            mProgressDialog.setTitle("第二种进度条框");            mProgressDialog.setMessage("正在读取中,请稍候。。。");            mProgressDialog.setIndeterminate(true);            mProgressDialog.setCancelable(true);            mProgressDialog.show();            break;        }    }   }

运行结果:

这里写图片描述

点击第一个按钮:

这里写图片描述

点击第二个按钮:

这里写图片描述

点击第三个按钮:

这里写图片描述

点击第四个按钮:

这里写图片描述

自定义Dialog(实例)
在MainActivity中定义一个打开自定义Dialog的按钮
MainActivity.java源代码:

import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity {    private Button btn;    MyDialog md;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        btn = (Button)findViewById(R.id.btn);        md = new MyDialog(this);        btn.setOnClickListener(new OnClickListener(){            @Override            public void onClick(View arg0) {                // TODO Auto-generated method stub                md.show();            }                   });    }}

activity_main.xml源代码:

<?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/btn"        android:layout_height="wrap_content"        android:layout_width="wrap_content"        android:text="显示自定义对话框"    /></LinearLayout>

自定义对话框类MyDialog,必须继承Dlalog类。
MyDialog.java源代码:

import android.app.Dialog;import android.content.Context;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.ImageView;import android.widget.TextView;public class MyDialog extends Dialog{    TextView text;    Button button_yes,button_no;    ImageView image;    public MyDialog(Context context) {        super(context);        // TODO Auto-generated constructor stub    }     protected void onCreate(Bundle savedInstanceState) {            super.onCreate(savedInstanceState);            setContentView(R.layout.mydialog);            text = (TextView)findViewById(R.id.text);              button_yes = (Button) findViewById(R.id.button_yes);             button_no = (Button) findViewById(R.id.button_no);             image = (ImageView)findViewById(R.id.image);             setTitle("自定义的dialog");            text.setText("我是蛋蛋");            image.setImageResource(R.drawable.myimage);            button_yes.setOnClickListener(new Button.OnClickListener(){                  public void onClick(View v) {                      // TODO Auto-generated method stub                      dismiss();                                        }            });              button_no.setOnClickListener(new Button.OnClickListener(){                  public void onClick(View v) {                      // TODO Auto-generated method stub                      dismiss();                                       }              });          }}

mydialog.xml源代码:

<LinearLayout     xmlns:android="http://schemas.android.com/apk/res/android"     android:orientation="horizontal"     android:layout_width="fill_parent"     android:layout_height="fill_parent"     android:padding="10dp"              >    <ImageView         android:id="@+id/image"        android:layout_width="wrap_content"        android:layout_height="fill_parent"        android:layout_marginRight="10dp"               />    <LinearLayout         android:orientation="vertical"        android:layout_width="fill_parent"         android:layout_height="wrap_content"        android:padding="5px"         >    <TextView         android:id="@+id/text"              android:layout_width="wrap_content"              android:layout_height="fill_parent"              android:textColor="#336699"              />    <LinearLayout         android:orientation="horizontal"        android:layout_width="fill_parent"         android:layout_height="wrap_content"        android:padding="5px"         >    <Button         android:id="@+id/button_yes"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text=" Yes "        android:gravity="center"              />    <Button         android:id="@+id/button_no"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text=" No "        android:gravity="center"              />    </LinearLayout>    </LinearLayout></LinearLayout>

运行结果:
这里写图片描述

这就实现了自定义Dialog,如果想定义更漂亮的Dialog,我们继续美化下去吧,继续努力,学习更多!

Focus on technology, enjoy life!—— QQ:804212028
浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305

0 0
原创粉丝点击