zoukankan      html  css  js  c++  java
  • Android深入浅出系列之实例应用—弹出消息Toast对象的使用自定义方式(二)

      阅读目录

      一:前言

      二:实例

      三:运行效果

      一:前言
      Android中定义了一个Toast对象,用以弹出一个窗口来给予用户帮助和提示,和对话框不同的是,Toast并不是以独占方式显示的,它并不会抢夺用户的焦点,在弹出Toast的时候,依然可以对之前的界面进行操作,我们在“”一文中介绍了纯文本的Toast的使用,我们完全可以自定义Toast的显示内容和显示位置

      要自定义一个Toast也很简单,同样需要创建一个Toast对象,然后实现相应的方法即可

      二:实例

      1:布局文件

      1.1 myoast.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"
          >
      <ImageView
          android:id="@+id/iv"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:src="@drawable/mytoast"
          android:layout_gravity="center_vertical"
       />
      </LinearLayout>

      2:代码文件

      2.1 MainActivity.java

      package com.menglin.toast;

      import android.app.Activity;
      import android.os.Bundle;
      import android.text.Editable;
      import android.view.Gravity;
      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
      {
         //声明两个Button对象
         private Button mybtn1,mybtn2;
         //声明一个EditText对象
         private EditText myedittext;
         @Override
         public void onCreate(Bundle savedInstanceState)
         {
            super.onCreate(savedInstanceState);
            //加载main.xml布局文件
            setContentView(R.layout.main);
            //以findViewById()方法取得Button对象
            mybtn1 = (Button)findViewById(R.id.btn1);
            mybtn2 = (Button)findViewById(R.id.btn2);
            //以findViewById()方法取得EditText对象
            myedittext = (EditText)findViewById(R.id.et);
            //给Button对象绑定单击监听事件
            mybtn1.setOnClickListener(listener);
            mybtn2.setOnClickListener(listener);
         }
     
         //监听事件
         private OnClickListener listener = new OnClickListener()
         { 
            @Override
            public void onClick(View v)
            {
               switch (v.getId())
               {
                  case R.id.btn1:
                     //声明字符串变量
                     Editable str;
                     //得到由用户输入EditText的文字内容
                     str = myedittext.getText();
                     //使用Toast.makeText()方法来产生Toast信息
                     Toast.makeText(MainActivity.this, str.toString(), Toast.LENGTH_LONG).show();
                     //清空EditText
                     myedittext.setText("");
                   break;
                  case R.id.btn2:
                     //导入布局文件
                     View view = getLayoutInflater().inflate(R.layout.mytoast, null);
                     //得到Toast对象
                     Toast toast = new Toast(MainActivity.this);
                     //设置Toast对象的位置,3个参数分别为位置,X轴偏移,Y轴偏移
                     toast.setGravity(Gravity.CENTER, 0, 0);
                     //设置Toast对象的显示时间
                     toast.setDuration(Toast.LENGTH_LONG);
                     //设置Toast对象所要展示的视图
                     toast.setView(view);
                     //显示Toast
                     toast.show();
                  break;
                  default:
                  break;
               }
             }
           };
        }

      三:运行效果

      布局

      

      单击“纯文本方式Toast”按钮

      

      单击“自定义方式Toast”按钮

      

      

  • 相关阅读:
    angular运行报错“Cannot find module 'ng2-translate'.”
    切换分支
    下载angular项目报错[ERROR] ionic-app-scripts has unexpectedly closed (exit code 1).
    通过原生SQL判断数据是否存在
    多图合并一张长图脚本
    科大讯飞--新冠肺炎检测赛道第八分享
    Mysql定时任务
    Mysql导出数据结构 or 数据
    G6Editor 边的参数配置
    百度坐标转腾讯坐标
  • 原文地址:https://www.cnblogs.com/menglin2010/p/2376526.html
Copyright © 2011-2022 走看看