SwipeRefreshLayout布局的下拉刷新及NormalDialog的提示框功能

一、在用SwipeRefreshLayout写下拉刷新时遇到的问题及如何解决。

这周在写下拉刷新功能的时候遇到一个问题,说不清楚,直接上图:他的意思是说我尝试在空对象引用上调用虚拟方法,也就是说在这里没有我使用的这个方法,我想前想后,百思不得其解,因为这个是我按着《第一行代码》这本书上面敲的,按理说不应该有错才对的啊。


image.png

因为是新手嘛,所以这个问题我足足纠结了一个小时。最后我才知道我对“SwipeRefreshLayout”的声明放在了onCreate()中,这是不对的,因为我要执行的下拉刷新操作不是对activity_main这个layout的执行,而是对我所进行过的viewPager布局下的各界面进行的刷新,所以我应该是放在initViewPager()这个方法下进行声明才对,我的声明如下图,到这里这个问题就解决了。经过这个问题后,以后我就知道如果再出现这种报错的话我就大概知道错在哪儿了。


image.png

二、如何做提示框弹出。

image.png

如图,这也是我这个星期要做的一个功能。点击一个Button后跳出提示框要你去确认后才执行这个操作。其实也很简单,也就二十多行代码。showNormalDialogShiMiao()这个方法是点击你界面上的按钮后要执行的方法。我们只有通过方法的跳转才能实现这一功能。

 private void showNormalDialogShiMiao(){
        /* @setIcon 设置对话框图标
         * @setTitle 设置对话框标题
         * @setMessage 设置对话框消息提示
         * setXXX方法返回Dialog对象,因此可以链式设置属性
         */
        final AlertDialog.Builder normalDialog =
                new AlertDialog.Builder(MainActivity.this);//对NormalDialog进行声明
        normalDialog.setIcon(R.drawable.fishfood);//取一张图片,就是图上那只粉色的鱼
        normalDialog.setTitle("饭吃七分饱,再多受不了!!!");//标题
        normalDialog.setMessage("确定好十秒后喂食了吗?");//内容
        normalDialog.setPositiveButton("YES",
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        doShiMiao();                    }
                });//这里为点击yes后要执行的事件
        normalDialog.setNegativeButton("NO",
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        
                    }
                });//这里为点击no后要执行的事件,因为我们点击no不需要执行任何操作,所以可以不写
        // 显示
        normalDialog.show();
    }

三、Button点击的颜色变化

点击前

点击后

这个小玩意儿当初我也是不知道怎么弄的,以为又要用很长的代码去判断,但是到后来我发现这个也是非常容易的。


                <Button
                    android:id="@+id/btn_change_water"
                    android:layout_width="190px"
                    android:layout_height="200px"
                    android:layout_gravity="center"
                    android:layout_weight="0.18"

                    android:background="@drawable/cl"

                    android:fitsSystemWindows="true" />

这是我在显示Button的layout里面设置的Button属性,主要是background这个属性,我要使用的不是一张图片。二十另外的XML文件,我把这个cl文件写在了drawable这个文件夹下,其实写在哪里都可以,到时候去写取这个文件的路径就好了,接下来我么看cl文件里面的代码。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 按压时 -->
    <item android:drawable="@drawable/waterhei" android:state_pressed="true" />
    <!-- 被选中时 -->
    <item android:drawable="@drawable/waterhei" android:state_selected="true" />
    <!-- 默认时 -->
    <item android:drawable="@drawable/waterh" android:state_enabled="true"/>
</selector>

里面的注释都非常清楚,我就不一一解释了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AGI阅读 16,009评论 3 119
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,349评论 25 708
  • 万事皆从细中来 大鼎豪杰琢磨才 一点一滴藏要害 一思一念作主宰 (欢迎转发,让世界充满正能量。)
    张允闳阅读 77评论 0 0
  • 这是本周写作群的习作题目,对于没有外出的我,该如何完成作业呢?我想就着文章的标题谈谈我是如何理解“旅”这个字的,它...
    jasmine南京阅读 461评论 6 4
  • 第二天
    只一点阅读 178评论 0 0