Android开发基础之消息提示组件Toast
Posted 舒泱
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android开发基础之消息提示组件Toast相关的知识,希望对你有一定的参考价值。
目录
一、设置显示的内容
Toast.makeText(MainActivity.this,"显示的内容",Toast.LENGTH_SHORT).show(); |
-
第一个参数:当前的上下文环境。可用getApplicationContext()或this等。
-
第二个参数:要显示的字符串。
-
第三个参数:显示的时间长短。有LENGTH_LONG和LENGTH_SHORT。
程序示例:
在activity_main.xml里添加一个按钮:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical">
<Button
android:layout_width="350dp"
android:layout_height="100dp"
android:id="@+id/btn"
android:background="@color/pink_100"
android:text="点击按钮弹出提示消息"
android:textSize="30sp">
</Button>
</LinearLayout>
在MainActivity.java里监听按钮的点击事件,只要按钮被点击,就弹出提示消息框:
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn=findViewById(R.id.btn); // 获取控件id
// 监听按钮点击事件
btn.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
// 弹出Toast
Toast.makeText(MainActivity.this,"hhh",Toast.LENGTH_SHORT).show();
);
效果:
二、设置显示的位置
toast1.setGravity(Gravity.CENTER,0,0); |
程序示例:
activity_main.xml不变,仅修改MainActivity.java里的一句代码:
public class MainActivity extends AppCompatActivity
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn=findViewById(R.id.btn); // 获取控件id
// 监听按钮点击事件
btn.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
// 获取一个Toast
Toast toast1 = Toast.makeText(getApplicationContext(),"hhh我居中显示了",Toast.LENGTH_SHORT);
// 居中显示
toast1.setGravity(Gravity.CENTER,0,0);
toast1.show();
);
但是这个方法在API30或者更高版本的设备上不再适用:
三、自定义显示的内容(例如显示一个图片)
首先,随便准备一个你要显示的图片,放在drawable-XXX目录下:
然后新建一个布局文件:
随便取个名字:
编辑这个布局文件,这个文件的布局就是Toast要弹出来的小窗的内容:
<?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">
<LinearLayout
android:layout_width="200dp"
android:layout_height="200dp"
android:orientation="vertical"
android:background="#99DDFFFF">
<ImageView
android:layout_width="200dp"
android:layout_height="150dp"
android:src="@drawable/go1">
</ImageView>
<TextView
android:layout_width="200dp"
android:layout_height="50dp"
android:text="自定义Toast"
android:textSize="30sp"
android:gravity="center">
</TextView>
</LinearLayout>
</LinearLayout>
activity_main.xml不变,修改MainActivity.java里的代码:
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity
private Button btn7;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn7=findViewById(R.id.btn7); // 获取控件id
// 监听按钮点击事件
btn7.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
// 获取一个Toast
Toast toast1 = new Toast(getApplicationContext());
// 给Toast设置一个视图
LayoutInflater inflater=LayoutInflater.from(MainActivity.this);
View view1=inflater.inflate(R.layout.layout_toast,null);
toast1.setView(view1);
toast1.show();
);
效果:
附kotlin代码
MainActivity.kt
package com.example.myapplication
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity()
override fun onCreate(savedInstanceState: Bundle?)
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// kotlin中可以不用findViewById
btn1.setOnClickListener
Toast.makeText(this,"hh",Toast.LENGTH_SHORT).show() // 将"hh"替换成你要显示的内容
不用调用findViewById()直接使用控件ID名的方法:Kotlin中替代findViewById的方式
以上是关于Android开发基础之消息提示组件Toast的主要内容,如果未能解决你的问题,请参考以下文章