美文网首页
SwipeRefreshLayout布局的下拉刷新及Normal

SwipeRefreshLayout布局的下拉刷新及Normal

作者: W_Nicotine | 来源:发表于2018-06-10 20:57 被阅读0次

一、在用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>

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

相关文章

网友评论

      本文标题:SwipeRefreshLayout布局的下拉刷新及Normal

      本文链接:https://www.haomeiwen.com/subject/dzaisftx.html