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

Focus on technology, enjoy life!—— QQ:804212028
浏览链接:http://blog.youkuaiyun.com/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.youkuaiyun.com/y18334702058/article/details/44624305

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值