Android学习笔记(五)——Toast提示、Dialog对话框、Menu菜单

android中的提示机制:

  • Toast
  • AlertDialog
  • Notification

在这里插入图片描述

一、Toast。

Toast消息提示框是轻量级的信息提醒机制,显示在应用程序界面的最上层。一般用于提示一些不那么引人注目,但是又希望用户看见的信息,无需用户自己维护它的消失。
Toast的使用:
1、创建Toast对象:
通过构造方法new Toast()
makeText()方法:设置显示内容,显示时长。
2、设置消息提示的样式
3、显示消息

测试案例
效果图:
在这里插入图片描述
布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="cn.edu.hznu.toast.MainActivity">
   <Button
       android:id="@+id/button1"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="长的Toast"
       android:textAllCaps="false"
       android:textSize="28sp"
       android:layout_gravity="center"/>
    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="短的Toast"
        android:textAllCaps="false"
        android:textSize="28sp"
        android:layout_gravity="center"/>
    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="带有图片的Toast"
        android:textAllCaps="false"
        android:textSize="28sp"
        android:layout_gravity="center"/>
</LinearLayout>

类文件:

package cn.edu.hznu.toast;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private Button button1,button2,button3;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button1=(Button) findViewById(R.id.button1);
        button2=(Button) findViewById(R.id.button2);
        button3=(Button) findViewById(R.id.button3);
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(MainActivity.this,"这是一个长的Toast",Toast.LENGTH_LONG).show();
            }
        });
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(MainActivity.this,"这是一个短的Toast",Toast.LENGTH_SHORT).show();
            }
        });
        button3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
              Toast toast=  Toast.makeText(MainActivity.this,"这是一个居中的带有图片的Toast",Toast.LENGTH_LONG);
                toast.setGravity(Gravity.CENTER,0,0);
                ImageView imageView=new ImageView(MainActivity.this);
                imageView.setImageResource(R.mipmap.ic_launcher);
                LinearLayout toastview=(LinearLayout)toast.getView();
                toastview.addView(imageView);
                toast.show();
            }
        });
    }
}

在这里插入图片描述
二、Dialog对话框。
测试案例:
效果图:
在这里插入图片描述
布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="cn.edu.hznu.dialog.MainActivity">


    <Button
        android:id="@+id/button_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="普通对话框"
        android:textAllCaps="false"
        android:layout_gravity="center"
        android:textSize="28sp" />

    <Button
        android:id="@+id/button_2"
        android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="单选对话框"
        android:textAllCaps="false"
        android:textSize="28sp" />

</LinearLayout>

类文件:

package cn.edu.hznu.dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
    Button btn_1,btn_2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn_1=(Button)findViewById(R.id.button_1);
        btn_2=(Button)findViewById(R.id.button_2);
        btn_1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this); //创建一个AlertDialog的构造器
                builder.setIcon(R.mipmap.ic_launcher);   //设置图标
                builder.setTitle("温馨提示");  //设置标题
                builder.setMessage("确定要提交吗?");  //设置消息内容
                builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        finish();  //页面关闭
                    }
                });
                builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        //添加取消按钮后的功能代码
                    }
                });
                builder.create().show();
                btn_2.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this); //创建一个AlertDialog的构造器
                        builder.setIcon(R.mipmap.ic_launcher);   //设置图标
                        builder.setTitle("请选择城市");  //设置标题
                        final String[] cities={"北京", "上海", "广州", "深圳"}; //设置选项内容
                        builder.setSingleChoiceItems(cities, 0, new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                            }
                        });
                        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                            }
                        });
                        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                            }
                        });
                        builder.create().show();
                    }
                });
            }
        });
    }
}

三、Menu菜单

效果图:
在这里插入图片描述
布局文件:
在工程的res文件夹中创建menu文件夹,menu文件夹下创建Menu resource file——main.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android">
  <item
      android:id="@+id/add_item"
      android:title="消息"/>
    <item
        android:id="@+id/delete_item"
        android:title="分享" />
    <item
        android:id="@+id/modify_item"
        android:title="收藏" />
    <item
        android:id="@+id/exit_item"
        android:title="退出" />

</menu>

类文件:

package cn.edu.hznu.menu;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    //1.添加选项菜单,让创建的菜单显示出来,重写onCreateOptionsMenu()方法

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main,menu);//获取当前菜单对象,加载菜单布局文件
        return true;//显示菜单
    }
    //2.给菜单添加选中时的响应事件,重写onOptionsItemSelected()方法

    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()){
            case R.id.add_item:
                Toast.makeText(MainActivity.this,"您单击了消息菜单",Toast.LENGTH_LONG).show();
                break;
            case R.id.delete_item:
                Toast.makeText(MainActivity.this, "您单击了分享菜单", Toast.LENGTH_LONG).show();
                break;
            case R.id.modify_item:
                Toast.makeText(MainActivity.this, "您单击了收藏菜单", Toast.LENGTH_LONG).show();
                break;
            case R.id.exit_item:
                finish();
                break;
            default:
        }

        return true;
    }
}
发布了105 篇原创文章 · 获赞 30 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43759352/article/details/105316852