android studio for android learning (十七) Toast使用详解

来源:互联网 发布:剑灵捏脸数据怎么下载 编辑:程序博客网 时间:2024/06/08 03:00

1.Toast是一种很方便的消息提示框,会在 屏幕中显示一个消息提示框,没任何按钮,也不会获得焦点、一段时间过后自动消失!


2.特点:

  • Toast是一种提供给用户简洁提示信息的视图。
  • 不能获得焦点
  • 显示一段时间后自动消失
  • Toast 是一个 View 视图,快速的为用户显示少量的信息。
  • 不影响用户的输入等操作,主要用于 一些帮助 / 提示。

3.主要用法

Toast.makeText(Mainthis, “提示的内容”, Toast.LENGTH_SHORT).show(); 第一个是上下文对象!对二个是显示的内容!第三个是显示的时间,只有LONG和SHORT两种 会生效,即时你定义了其他的值,最后调用的还是这两个!


4.下面示例Toast的用法,主要展示如下图中所示的5种,一般第一种用法较多。

这里写图片描述

布局文件

main.xml

<?xml version="1.0" encoding="utf-8"?><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="com.dragon.toast.Main">    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="默认显示"        android:id="@+id/btn1"        android:layout_alignParentTop="true"        android:layout_marginTop="31dp"        android:layout_alignParentRight="true"        android:layout_alignParentEnd="true"        android:layout_alignParentLeft="true"        android:layout_alignParentStart="true" />    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="自定义显示位置"        android:id="@+id/btn2"        android:layout_below="@+id/btn1"        android:layout_alignParentLeft="true"        android:layout_alignParentStart="true"        android:layout_alignParentRight="true"        android:layout_alignParentEnd="true" />    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="带图片的显示"        android:id="@+id/btn3"        android:layout_below="@+id/btn2"        android:layout_alignRight="@+id/btn2"        android:layout_alignEnd="@+id/btn2"        android:layout_alignParentLeft="true"        android:layout_alignParentStart="true" />    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="完全自定义显示"        android:id="@+id/btn4"        android:layout_below="@+id/btn3"        android:layout_alignRight="@+id/btn3"        android:layout_alignEnd="@+id/btn3"        android:layout_alignParentLeft="true"        android:layout_alignParentStart="true" />    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="其它线程调用显示"        android:id="@+id/btn5"        android:layout_below="@+id/btn4"        android:layout_alignRight="@+id/btn4"        android:layout_alignEnd="@+id/btn4"        android:layout_alignParentLeft="true"        android:layout_alignParentStart="true" /></RelativeLayout>

toast.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:orientation="vertical">    <TextView        android:layout_width="match_parent"        android:layout_height="30dp"        android:gravity="center"        android:text="自定义的Toast对话框" />    <ImageView        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_gravity="center"        android:src="@android:drawable/sym_def_app_icon" />    <TextView        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:gravity="center"        android:text="显示Toast弹出的内容" /></LinearLayout>

主要的代码文件Main.java

package com.dragon.toast;import android.os.Handler;import android.os.Message;import android.support.v4.media.MediaMetadataCompat;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.widget.Button;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.Toast;public class Main extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);//默认显示        Button btnshow1 = (Button) findViewById(R.id.btn1);        btnshow1.setOnClickListener(new View.OnClickListener(){            @Override            public void onClick(View v){                Toast toast = Toast.makeText(Main.this,"默认显示", Toast.LENGTH_LONG);                toast.show();            }        });//        自定义显示位置        Button btnshow2 =(Button) findViewById(R.id.btn2);        btnshow2.setOnClickListener(new View.OnClickListener(){            @Override            public void onClick(View v){                Toast toast = Toast.makeText(Main.this,"自定义显示位置",Toast.LENGTH_SHORT);                toast.setGravity(Gravity.CENTER,10,-200);                toast.show();            }        });//        带图片的显示        Button btnshow3 = (Button) findViewById(R.id.btn3);        btnshow3.setOnClickListener(new View.OnClickListener(){            @Override            public void onClick(View v){                Toast toast = Toast.makeText(Main.this,"带图片的显示",Toast.LENGTH_SHORT);//                获取toast的布局方式                LinearLayout toast_layout = (LinearLayout) toast.getView();                toast_layout.setOrientation(LinearLayout.HORIZONTAL);//设置为横向//                创建图片视图对象                ImageView iv = new ImageView(Main.this);                iv.setImageResource(R.mipmap.ic_launcher);                toast_layout.addView(iv,0);//加在文字开头//                toast_layout.addView(iv);//加在文字结尾                toast.show();            }        });//完全自定义显示        Button btnshow4 = (Button) findViewById(R.id.btn4);        btnshow4.setOnClickListener(new View.OnClickListener(){            @Override            public void onClick(View v){                LayoutInflater inflater = LayoutInflater.from(Main.this);                View toast_view = inflater.inflate(R.layout.toast,null);                Toast toast = new Toast(Main.this);                toast.setView(toast_view);                toast.show();            }        });//在其他线程中显示        Button btnshow5 = (Button) findViewById(R.id.btn5);        btnshow5.setOnClickListener(new View.OnClickListener(){            @Override            public void onClick(View v) {                handler.post(new Runnable() {                    @Override                    public void run() {                        showToast();                    }                });            }        });}        public void showToast(){             Toast toast=Toast.makeText(getApplicationContext(), "Toast在其他线程中调用显示", Toast.LENGTH_SHORT);             toast.show();              }        Handler handler = new Handler(){            @Override            public void handleMessage(Message msg){                int what=msg.what;                switch(what){                    case 1:                        showToast();                        break;                    default:                        break;                }                super.handleMessage(msg);            }        };}

由于代码比较简单就不做过多的解释了。大家有问题可以在下面留言。


Reference:

1.http://www.cnblogs.com/ycxyyzw/archive/2013/03/12/2955845.html
2.http://www.runoob.com/w3cnote/android-tutorial-toast.html
3.http://www.cnblogs.com/zhengcheng/p/4423468.html
4.http://www.jianshu.com/p/81bd20476fbd

0 0
原创粉丝点击