AlertDialog和ProgressDialog界面对话框的使用(主),基础控件(TextView、Button、EditText、ImageView)的使用(副),附带一个按键进度条。源代码下载

      跟着书本学习,这是今天学习的成果,写在这里作为笔记和备份,也希望能对看到的人有所帮助。

1.程序截图

1.1  主界面的布局,图中首先是一个TextView,然后是3个Button,后面是一个输入框EditText,再下面是一个ImageView(样子像复选框而已),最下面是一个ProgressBar相当于一个进度条。实现了那些东西就不说了,主要功能就不说了,下面还要贴代码。


1.2 点击Button2时弹出的Dialog对话框,这个对话框会存在于屏幕的最上层并且屏蔽掉Activity的交互。用于提醒用户一些重要的事情,比如你要删除一些文件就会淡出一个这样的对话框让你确认。

1.3 点击Button3时的界面,和上面的类似。当系统有某些处理时间耗时较长,用这个来提醒用户等待。

2.1 MainActivity.java代码:

import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Handler;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    private EditText mEt;
    private TextView mTv;
    private Button  mBt;
    private Button mBt2;
    private Button mBt3;
    private ImageView mIv;
    private ProgressBar mPb;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate ( savedInstanceState );
        setContentView ( R.layout.activity_main );
        mTv = findViewById ( R.id.mTv );
        mTv.setOnClickListener ( this );

        mBt = findViewById ( R.id.mBt );
        mBt.setOnClickListener ( this );
        mBt2 = findViewById ( R.id.mBt2 );
        mBt2.setOnClickListener ( this );
        mBt3 = findViewById ( R.id.mBt3 );
        mBt3.setOnClickListener ( this );

        mEt = findViewById ( R.id.mEt );
        mIv = findViewById ( R.id.mIv );
        mPb = findViewById ( R.id.mPb );
    }
    public void onClick(View view){
        switch(view.getId ()){
            case R.id.mTv:
                Toast.makeText ( this, "你点击了mTv", Toast.LENGTH_SHORT ).show ();
                mIv.setImageResource ( R.drawable.check_unchoose );
                break;
            case R.id.mBt:
                Toast.makeText ( this, "你点击了mBt", Toast.LENGTH_SHORT ).show ();
                //读取EditText的输入显示在TextView
                String str = mEt.getText ().toString ();
                mTv.setText ( str );
                //设置ImageView的图片是check_choose
                mIv.setImageResource ( R.drawable.check_choose );
                //让环形进度条消失(ProgressBar)
                /*if(mPb.getVisibility ()==View.GONE){
                    mPb.setVisibility ( View.VISIBLE );
                }else {
                    mPb.setVisibility ( View.GONE );
                }*/
                int pro = mPb.getProgress ();
                pro = pro+10;
                mPb.setProgress ( pro );
                break;
            case R.id.mBt2:
                AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
                dialog.setTitle ( "你是猪吗?" );
                dialog.setMessage ( "选是选是,快选是,否则我就退出!" );
                dialog.setCancelable ( false );//设置成false后,只有选了选项才能继续,按返回不能退出
                dialog.setPositiveButton ( "是", new DialogInterface.OnClickListener () {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Toast.makeText ( MainActivity.this,"这就乖了嘛!",Toast.LENGTH_SHORT ).show ();
                    }
                });
                //有选项对话框
                dialog.setNegativeButton( "不是", new DialogInterface.OnClickListener () {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Toast.makeText ( MainActivity.this,"再见,你这只不自知的猪!",Toast.LENGTH_SHORT ).show ();
                        new Handler (  ).postDelayed ( new Runnable () {
                            @Override
                            //延时两秒后销毁Activity
                            public void run() {
                                finish ();
                            }
                        }, 2000);
                    }
                });
                dialog.show ();
                break;
            case R.id.mBt3:
                //处理事务是等待提示对话框
                ProgressDialog  progressDialog = new ProgressDialog ( MainActivity.this );
                progressDialog.setTitle ( "我是一个圆圈!" );
                progressDialog.setMessage ( "我就转啊转...转啊转......" );
                progressDialog.setCancelable ( true );//按返回会退出提示对话框
                progressDialog.show ();
                break;
            default:
                break;
        }
    }
}

学到了按键事件比较多的时候可以让Activity实现接口(implements View.OnClickListener)后面通过switch语句实现按键监听事件,会少些很多代码,也会易读一些。

2.2 MainActivity布局文件(Activity_main):

<?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:orientation="vertical"
    >

    <TextView
        android:id="@+id/mTv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:hint="Hello World!"
        android:textColorHint="#bf16d6"
        android:layout_marginTop="20dp"
        android:gravity="center"
        android:textSize="25sp"
        android:textColor="#bf16d6"
         />
    <Button
        android:id="@+id/mBt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button1"
        android:textAllCaps="false"/>
    <Button
        android:id="@+id/mBt2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button2"
        android:textAllCaps="false"/>
    <Button
        android:id="@+id/mBt3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button3"
        android:textAllCaps="false"/>
    <EditText
        android:id="@+id/mEt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Type something here"
        android:maxLines="2"/>
    <ImageView
        android:id="@+id/mIv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/check_unchoose"
        android:layout_gravity="center"/>
    <ProgressBar
        android:id="@+id/mPb"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        style="?android:attr/progressBarStyleHorizontal"
        android:max="100"
        />
</LinearLayout>

学到了一个新的控件,就是ProgressBar,具体使用方法点击这里参见大佬对ProgressBar用法的总结。

源代码下载

猜你喜欢

转载自blog.csdn.net/sdbx_lyp/article/details/80032426