一、在用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>
里面的注释都非常清楚,我就不一一解释了。