Toast
提示用户。其不获取焦点,即显示Toast,用户还可以继续操作
方法:
**T**oast.makeText(context, text, duration);//返回Toast对象,context为上下文。一般为this。
toast.setDuration(duration); //设置持续时间 。系统提供的有:Toast.LENGTH_LONG
toast.setGravity(gravity, xOffset, yOffset); //设置toast位置 。xOffset,yOffset当前位置的偏移量
toast.setText(s);//设置提示内容
toast.show();//显示
带图片的Toast:
Toast toast = Toast.makeText(this, "img", Toast.LENGTH_LONG);
LinearLayout toast_layout = (LinearLayout)toast.getView();
ImageView iv = new ImageView(this); //这里的this怎么用的??
iv.setImageResource(R.drawable.img);
toast_layout.addView(iv,0);//0表示图片在文字上面
toast.show();
自定义Toast:
LayoutInflater inflater = LayoutInflater.from(this);
View toast_view = inflater.inflate(R.layout.toast_layout, null);//运用R.layout.toast_layout自定义
Toast toast = new Toast(this);
toast.setView(toast_view);
toast.show();
Dialog
对话框是在当前界面弹出的一个小窗口,用于显示重要提示信息,提示用户输入信息,确认信息,或者显示某种状态,如下载进度,退出提示等。一般情况下,用户要与对话框进行交互,然后返回到被遮盖的界面以继续运行当前的应用程序。
类别:
- 确认对话框
- 单选按钮对话框
- 多选按钮对话框
- 列表对话框
创建一个AlertDialog,要用到AlertDialog.Builder中的create()方法。
AlertDialog.Bulder builder = new AlertDialog.Bulder(this);
builder.setPositiveButton("确定",new DialogInterface.OnClickListener(){//加上DialogInterface是加以区分其他包里与OnClickListener相同名字的方法
@Override
AlertDialog dialog = builder.create();//获取
dialog.show();
AlertDialog常用方法:
setTitle:为对话框设置标题
setIcon:为对话框设置图标
setMessage: 为对话框设置内容
setView:给对话框设置自定义样式
setItems:设置对话框要显示的一个list,一般用于显示几个命令
setMultiChoiceItems:用来设置对话框显示一系列复选框
String [] multi_list = {"A","B"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMultiChoiceItems(multi_list,null,new DialogInerface.OnMultiChoiceClickListener(){//null表示默认不选则任何一项
@Override
public void onClick(DialogInterface dialog, int which ,boolean isChecked){
if(isChecked){ Toast.makeText(MainActivity.this,multi_list[which],Toast.LENTGH_LONG).show();
}else{
}
}
})
AlertDialog dialog = builder.create();
dialog.show();//dialog.dismiss()表示隐藏对话框。可以用来设置取消按钮
setSingleChoiceItems:设置单选按钮
String [] single_list = {"A","B"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setSingleChoiceItems(single_list, 0 ,new DialogInterface.OnClickListener(){ //0表示默认选择第一个
@Override
public void OnClick(DialogInterface dialog,int which){
//which表示选中那个。从0开始
}
}
AlertDialog dialog = builder.create();
dialog.show();
setNeutralButtono:普通按钮
setPositiveButton: 给对话框添加确认按钮
setNegativeButton:给对话框添加取消按钮
自定义对话框
builder.setView(view);
Notification通知栏
图标
标题
内容
时间
点击后响应
步骤:
- 获取NotificatinMananger
NotificationManager manager;//通知控制类
int notification_ID;//定义ID
manager = getSystemService(Context.NOTIFICATION_SERVICE);
Builder builder = new Notification.Builder(this);
builder.setSmallIcon(R.drawable.ic_launcher);//图标
builder.setTicker("Hello");//手机状态栏的提示
builder.setWhen(System.currentTimeMillis());//时间
builder.setContentTitle("");//标题
builder.setContentText("");//设置通知内容
Intent intent = new Intent(this,MainActivity.class);
PendingIntent pintent = PendingIntent.getActivity(this);
builder.setContentIntent(pintent);//点击后的意图
builder.setDefaults(Notification.DEFAULT_SOUND);//声音
builder.setDefaults(Notification.DEFAULT_LIGHTS);//指示灯
builder.setDefaults(Notification.DEFAULT_VIBRATE);//震动
builder.setDefaults(Notification.DEFAULT_ALL);//包括以上三种
Notificatin notification = builder.build();//4.1以上
- 显示通知栏notify(id, notification);
manager.notify(notification_ID, notification);
- 取消通知栏:cancel(id);
manager.cancel(notification_ID); - 构造Notification并 设置显示内容
- 通知栏通知可以设置声音提示,指示灯,以及震动效果
PS:为设置震动,指示灯添加权限:在AndroidManifest.xml文件下的Permissions栏目设置
OptionsMenu 选项菜单
创建选项菜单:onCreateOptionsMenu() – 可用代码动态设置menuadd();也可以通过xml设置MenuInflaterinafalte();
设置菜单项点击事件:
public boolean onOptionsItemSelected(MenuItem item){
switch(item.getItemId()){
}
}
ps:api>=11时,是不能为OptionsMenu设置图标的
ContextMenu上下文菜单
windows OS下对文件右键。Android下对文件长按
PS:
- OptionMenu对应的是activity,一个activity只能拥有一个选项菜单
- ContextMenu对应的是View,每个View都可设置上下文菜单。一般用于ListView或GridView
步骤:
- 给View注册上下文菜单registerForContextMenu()
this.registerForContextMenu(listview);
- 添加上下菜单内容onCreateCoontextMenu()
用代码:
@Override
public void onCreateCoontextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo){
super.onCreateCoontextMenu(menu, v, menuInfo);
//
menu.setHeaderTitle("");
menu.setHeaderIcon();
menu.add();
}
用main.xml添加Item
MenuInflater infalter = getMunuInflater();
inflater.inflate(R.menu.main,menu);
- 设置菜单点击后相应事件onContextItemSelected()
@Override
public boolean onContextItemSelected(MenuItem item){
swicth (item.getItemId()){
}
return super.onContextItemSelected(item);
}
SubMenu子菜单
为选项菜单添加子菜单:
SubMenu file = menu.addSubMenu("Name");
给子菜单添加菜单项:
file.add();
监听
@Override
public boolean onOptionsItemSelected(MenuItem item){
if(item.getGroupId()==1){
switch(item.getItemId()){
//区分好itemId和GroupId
}
}
}
使用XML添加subMenu子菜单
在menu.xml设置
<item
android:showAsAction = "never"
android:title="ah"/>
<menu> //子菜单
<item
android:id
android:showAsAction
android:title
/>
</menu>
</item>