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;
}
}