Android Studio 之 在活动中使用 Toast | 您所在的位置:网站首页 › 山西人事人事考试网 › Android Studio 之 在活动中使用 Toast |
•简介 Toast 是 Android 系统提供的一种非常好的提醒方式; 在程序中可以使用它将一些短小的信息通知给用户; 这些信息会在一段时间内自动消失,并且不会占用任何屏幕空间 •Toast.makeText()函数原型Toast.makeText(参数1,参数2,参数3); 参数1是 Context,是 Toast 要求的上下文 由于活动本身就是一个Context对象,因此直接传入 XXXActivity.this 即可,或者填入 getApplicationContext()参数2是 Toast 显示的文本内容 参数3是 Toast 显示的时长,有两个内置常量可以选择 Toast.LENGTH_SHORT 和 Toast.LENGTH_LONG •准备工作新建一个项目,并选择 Empty Activity; 这样,Android Studio 为我们自动生成了 MainActivity.java 和 activity_main.xml 文件; 修改 activity_mian.xml 中的代码; activity_main.xml在该布局中,定义了两个 Button; 想要使用 Toast,需要定义一个弹出 Toast 的触发点; 正好我们定义了两个 Button,那我们就让点击 Button 的时候弹出一个 Toast 吧; 有两种方式定义 Button 的点击事件: 用匿名类来实现点击事件的方法 用外部类来实现点击事件的代码如下 •用匿名类来实现点击事件修改 MainActivity.java 中的代码; MainActivity.java public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);//给当前的活动加载一个布局 Button btn1 = findViewById(R.id.btn_1); //用匿名类来实现点击事件的方法 btn1.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Toast.makeText(MainActivity.this, "Button_1", Toast.LENGTH_SHORT).show(); } }); } } •运行效果 修改 MainActivity.java 中的代码; MainActivity.java public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);//给当前的活动加载一个布局 Button btn2 = findViewById(R.id.btn_2); btn2.setOnClickListener(new MyClick()); } //用外部类来实现点击事件的代码如下 class MyClick implements View.OnClickListener { @Override public void onClick(View v) { Toast t = Toast.makeText(MainActivity.this, "Button_2", Toast.LENGTH_SHORT); t.show(); } } }当然,你也可以这么写; public class MainActivity extends AppCompatActivity implements View.OnClickListener{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);//给当前的活动加载一个布局 Button btn2 = findViewById(R.id.btn_2); btn2.setOnClickListener(this); } @Override public void onClick(View v) { Toast t = Toast.makeText(MainActivity.this, "Button_2", Toast.LENGTH_SHORT); t.show(); } }让 MainActivity 实例化 View.OnClickListener 接口,并重写 onClick() 方法; •运行效果 •小结 在活动中,通过 findViewById() 方法获取到在布局文件中定义的元素; 得到按钮实例后,我们通过 setOnClickListener() 方法为按钮注册一个监听器; 点击按钮就会执行监听器中的 onClick() 方法; 因此将点击按钮弹出 Toast 的功能编写在 onClick() 方法中; Toast 的用法非常简单,通过静态方法 makeText() 创建出一个 Toast 对象; 然后调用 show() 方法将 Toast 显示出来即可; •自定义 Toast首先,在 layout 文件夹下自定义一个 .xml 文件,并命名为 toast.xml; 在里面放入如下代码: 其中的 控件是我之前自定义的圆形 ImageView,详情见我这篇博客; 然后,新建一个 Empty Activity ,命名为 TestTostActivity; 这样Android Studio自动为我们生成了 TestToastActivity.java 和 activity_test_toast.xml; 在 activity_test_toast.xml 中添加如下代码: 在 TestToastActivity.java 中设置相应的点击事件,并设置 Toast,代码如下: public class TestToastActivity extends AppCompatActivity { private Button mBtnApple; private Button mBtnBanana; private Toast toast; private LayoutInflater inflater; private View view; private ImageView Iv; private TextView Tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test_toast); toast = new Toast(getApplicationContext()); inflater = LayoutInflater.from(TestToastActivity.this); view = inflater.inflate(R.layout.toast, null); Iv = view.findViewById(R.id.toast_image_view);//找到 toast.xml 中 ImageView 控件的 id Tv = view.findViewById(R.id.toast_text_view);//找到 toast.xml 中 TextView 控件的 id mBtnApple = findViewById(R.id.btn_apple); mBtnBanana = findViewById(R.id.btn_banana); mBtnApple.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Iv.setImageResource(R.mipmap.apple_96px); Tv.setText("Apple"); toast.setView(view); toast.setDuration(Toast.LENGTH_SHORT); toast.setGravity(Gravity.CENTER, 0, 0);//将该toast居中显示 toast.show(); } }); mBtnBanana.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Iv.setImageResource(R.mipmap.banana_96px); Tv.setText("Banana"); toast.setView(view); toast.setDuration(Toast.LENGTH_SHORT);//Toast 显示的时长 toast.setGravity(Gravity.CENTER, 0, 0);//将该toast居中显示 toast.show(); } }); } } •运行效果 参考资料: 【AndroidStudio自定义Toast及其用法】 【Android Studio 在活动中使用Toast】 MainActivity |
CopyRight 2018-2019 实验室设备网 版权所有 |