子类 this:mainActivity 最终继承了context 父类有的 子类一定有 子类拥有的,父类不一定有
父类getApplicationContext(): 返回Context
对话框不能用getApplicationContext();
在使用对话框alterDialog的时候,如果使用getApplicationContext()方法获得的就是终极父类Context,而一个应用会有很多个activity,使用Context方法没有办法指定该提示框出现在哪个activity上,所以使用this获得当前类作为上下文,就会指定显示对话框的activity为当前类。
四种对话框: 普通对话框 单选对话框 多选对话框 进度条对话框
1.普通对话框
通过AlertDialog.Builder来获得Builder对象的实例(一定要用this调用本类),然后设置各项参数,小细节就是跟toast一样一定要记得最后show进行页面展示。
public void click1(View v) {
//新建一个builder Alertdialog对话框
AlertDialog.Builder builder = new AlertDialog.Builder(this, 0);
//普通对话框的标题
builder.setTitle("各单位部门注意了");
//内容
builder.setMessage("我们要进入圣诞节了");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
System.out.println("点击了确定");
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
System.out.println("点击了取消");
}
});
//最后一定要记得show
builder.show();
}
效果图展示:
2.单选对话框
需要注意的就是点击事件结束后 用dialog.dismiss()来关闭。
public void click2(View v) {
//新建一个builder Alertdialog对话框
AlertDialog.Builder builder = new AlertDialog.Builder(this, 0);
//单选对话框
final String items[]={"圣诞老人","圣诞树","圣诞帽","圣诞小车","圣诞小火车"};
builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String item = items[which];
Toast.makeText(getApplicationContext(),item,1).show();
//点击按钮后 关闭
dialog.dismiss();
}
});
builder.show();
}
3.多选对话框
注意boolean 别写成大写
public void click3(View v) {
//新建一个builder Alertdialog对话框
AlertDialog.Builder builder = new AlertDialog.Builder(this, 0);
//多选对话框
final String[] fruit = {"西瓜", "冬瓜", "甜瓜", "哈密瓜", "猕猴桃", "葫芦娃"};
final boolean[] items = {true, true, false, false, false, false};
final StringBuilder sb = new StringBuilder();
builder.setMultiChoiceItems(fruit, items, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
for (int i = 0; i < fruit.length; i++) {
if (items[i]) {
String f = fruit[i];
sb.append(f + " ");
}
}
dialog.dismiss();
Toast.makeText(getApplicationContext(), sb.toString(), 1).show();
}
});
builder.show();
}
4.进度条对话框
public void click4(View v) {
//新建一个progress 进度条对话框
ProgressDialog pd = new ProgressDialog(this, 0);
pd.setTitle("正在玩命加载中...");
pd.dismiss();
pd.show();
}
}
效果图展示:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView iv = findViewById(R.id.iv);
//设置背景资源
iv.setBackgroundResource(R.drawable.my_annim);
//获取AnimationDrawable类型开启
AnimationDrawable ad = (AnimationDrawable) iv.getBackground();
ad.start();
}
放入图片资源 写一个xml配置
xml
完成帧动画。