7.7. Tost组件(信息提示框)
Tost是一个简短的信息提示框,可以在一定的时间内进行显示,而后自动进行隐藏的一种组件。
|
构造器:
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() ; // 显示提示信息 } } } |