Android详细教程(基础篇):十三、View组件高级篇:Tost组件详解

版权声明:本文为博主原创文章,转载请注明出处。作者:杨雄进 https://blog.csdn.net/makyan/article/details/89164497

7.7. Tost组件(信息提示框)

Tost是一个简短的信息提示框,可以在一定的时间内进行显示,而后自动进行隐藏的一种组件。

java.lang.Object

   

android.widget.Toast

构造器:

Toast(Context context)

Construct an empty Toast object.

也可以使用它的工厂方法:

public static Toast makeText (Context context, int resId, int duration)

public static Toast makeText (Context context, CharSequence text, int duration)

配置:

<LinearLayout

     xmlns:android="http://schemas.android.com/apk/res/android"

     android:id="@+id/MyLayout"

     android:orientation="vertical"

     android:layout_width="fill_parent"

     android:layout_height="fill_parent">

     <Button

          android:id="@+id/butA"

          android:text="长时间显示Toast"

          android:layout_width="fill_parent"

          android:layout_height="wrap_content"/>

     <Button

          android:id="@+id/butB"

          android:text="短时间显示Toast"

          android:layout_width="fill_parent"

          android:layout_height="wrap_content"/>

</LinearLayout>

Activity:

package com.makyan.demo;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.Toast;

public class TostActivity extends Activity {

     private Button butA = null ;                                     // 定义按钮组件

     private Button butB = null ;                                     // 定义按钮组件

     @Override

     public void onCreate(Bundle savedInstanceState) {

          super.onCreate(savedInstanceState);

          super.setContentView(R.layout.activity_tost);                     // 调用布局管理器

          butA = (Button) super.findViewById(R.id.butA) ;    // 取得组件

          butB = (Button) super.findViewById(R.id.butB) ;    // 取得组件

          butA.setOnClickListener(new OnClickListenerImplShort()) ;    // 设置事件

          butB.setOnClickListener(new OnClickListenerImplLong()) ;     // 设置事件

     }

     private class OnClickListenerImplShort implements OnClickListener {    // 单击事件

          @Override

          public void onClick(View arg0) {

               Toast.makeText(TostActivity.this, "短时间显示的Toast信息提示框",Toast.LENGTH_SHORT).show();                // 显示Toast

          }

     }

     private class OnClickListenerImplLong implements OnClickListener {     // 单击事件

          @Override

          public void onClick(View arg0) {

               Toast.makeText(TostActivity.this, "长时间显示的Toast信息提示框",Toast.LENGTH_LONG).show();                      // 显示Toast

          }

     }

}

自定义显示视图:

需使用Tost中的getView方法获取内部中的组件,然后把其他组件放在此组件中

配置:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

     xmlns:android="http://schemas.android.com/apk/res/android"

     android:id="@+id/MyLayout"

     android:orientation="vertical"

     android:layout_width="fill_parent"

     android:layout_height="fill_parent">

     <Button

          android:id="@+id/but"

          android:text="自定义风格的Toast提示框"

          android:layout_width="fill_parent"

          android:layout_height="wrap_content"/>

</LinearLayout>

Activity程序:

package com.makyan.demo;

import android.app.Activity;

import android.os.Bundle;

import android.view.Gravity;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.ImageView;

import android.widget.LinearLayout;

import android.widget.Toast;

public class TostActivity extends Activity {

            private Button but = null ;                                                                                                 // 定义按钮组件

            @Override

            public void onCreate(Bundle savedInstanceState) {

                       super.onCreate(savedInstanceState);

                       super.setContentView(R.layout.activity_tost);                                                   // 调用布局管理器

                       but = (Button) super.findViewById(R.id.but) ;                  // 取得组件

                       but.setOnClickListener(new OnClickListenerImpl()) ;// 设置事件

            }

            private class OnClickListenerImpl implements OnClickListener {          // 单击事件

                       @Override

                       public void onClick(View view) {

                                   Toast myToast = Toast.makeText(TostActivity.this, "杨雄工作室软件学院",Toast.LENGTH_LONG) ;                                                                     // 创建Toast

                                   myToast.setGravity(Gravity.CENTER, 60, 30);                              // 定义对齐方式及位置

                                   // 取得myToast的View组件,之后在此组件之中继续增加图片,否则文字无法显示

                                   LinearLayout myToastView = (LinearLayout) myToast.getView();

                                   ImageView img = new ImageView(TostActivity.this);      // 图片组件

                                   img.setImageResource(R.drawable.pic_makyan) ;                                 // 显示图片

                                   myToastView.addView(img,0) ;                                                                // 添加组件,在文字上方

                                   myToast.show() ;                                                                                                   // 显示提示信息

                       }

            }

}

猜你喜欢

转载自blog.csdn.net/makyan/article/details/89164497
今日推荐