一睬隶、在用SwipeRefreshLayout寫下拉刷新時遇到的問題及如何解決峭梳。
這周在寫下拉刷新功能的時候遇到一個問題箱叁,說不清楚肖揣,直接上圖:他的意思是說我嘗試在空對象引用上調(diào)用虛擬方法,也就是說在這里沒有我使用的這個方法可免,我想前想后抓于,百思不得其解,因為這個是我按著《第一行代碼》這本書上面敲的浇借,按理說不應(yīng)該有錯才對的啊捉撮。
因為是新手嘛,所以這個問題我足足糾結(jié)了一個小時妇垢。最后我才知道我對“SwipeRefreshLayout”的聲明放在了onCreate()中巾遭,這是不對的肉康,因為我要執(zhí)行的下拉刷新操作不是對activity_main這個layout的執(zhí)行,而是對我所進行過的viewPager布局下的各界面進行的刷新灼舍,所以我應(yīng)該是放在initViewPager()這個方法下進行聲明才對吼和,我的聲明如下圖,到這里這個問題就解決了骑素。經(jīng)過這個問題后炫乓,以后我就知道如果再出現(xiàn)這種報錯的話我就大概知道錯在哪兒了。
二砂豌、如何做提示框彈出厢岂。
如圖,這也是我這個星期要做的一個功能阳距。點擊一個Button后跳出提示框要你去確認后才執(zhí)行這個操作。其實也很簡單结借,也就二十多行代碼筐摘。showNormalDialogShiMiao()這個方法是點擊你界面上的按鈕后要執(zhí)行的方法。我們只有通過方法的跳轉(zhuǎn)才能實現(xiàn)這一功能船老。
private void showNormalDialogShiMiao(){
/* @setIcon 設(shè)置對話框圖標
* @setTitle 設(shè)置對話框標題
* @setMessage 設(shè)置對話框消息提示
* setXXX方法返回Dialog對象咖熟,因此可以鏈式設(shè)置屬性
*/
final AlertDialog.Builder normalDialog =
new AlertDialog.Builder(MainActivity.this);//對NormalDialog進行聲明
normalDialog.setIcon(R.drawable.fishfood);//取一張圖片,就是圖上那只粉色的魚
normalDialog.setTitle("飯吃七分飽柳畔,再多受不了!!!");//標題
normalDialog.setMessage("確定好十秒后喂食了嗎?");//內(nèi)容
normalDialog.setPositiveButton("YES",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
doShiMiao(); }
});//這里為點擊yes后要執(zhí)行的事件
normalDialog.setNegativeButton("NO",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});//這里為點擊no后要執(zhí)行的事件馍管,因為我們點擊no不需要執(zhí)行任何操作,所以可以不寫
// 顯示
normalDialog.show();
}
三薪韩、Button點擊的顏色變化
這個小玩意兒當初我也是不知道怎么弄的确沸,以為又要用很長的代碼去判斷,但是到后來我發(fā)現(xiàn)這個也是非常容易的俘陷。
<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里面設(shè)置的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>
里面的注釋都非常清楚夭禽,我就不一一解釋了霞掺。