欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

DataBinding初識-創(chuàng)新互聯(lián)

DataBinding常用技巧:

創(chuàng)新互聯(lián)成立十多年來,這條路我們正越走越好,積累了技術與客戶資源,形成了良好的口碑。為客戶提供網(wǎng)站建設、做網(wǎng)站、網(wǎng)站策劃、網(wǎng)頁設計、主機域名、網(wǎng)絡營銷、VI設計、網(wǎng)站改版、漏洞修補等服務。網(wǎng)站是否美觀、功能強大、用戶體驗好、性價比高、打開快等等,這些對于網(wǎng)站建設都非常重要,創(chuàng)新互聯(lián)通過對建站技術性的掌握、對創(chuàng)意設計的研究為客戶提供一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進步。

1)default顯示預覽值(注意不要寫中文,否則會提示

Error:org.apache.xerces.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence.)

2)

DataBinding是Google最新推出的一款技術

  優(yōu)點

    1)例子1:自定義一個進度條,通過自定義屬性prgNum繪制進度值。

        一般是定義一個方法動態(tài)設置prgNum,并且調(diào)用invalidate方法調(diào)用onDraw更新

        如果使用onDraw,那么只需要改變prgNum,不需要給進度條定義任何方法,即可“

        無侵入式”的動態(tài)更新進度條。

    2)不用findViewById和類型強轉

    3)將事件封裝到module里,減小主類的代碼。

  弊端

    1)因為layout里@{}語句無法檢查錯誤,如大小寫出錯,容易導致databinding相關的類無法     自動生成。

    另外,xml如果不是databinding造成的錯誤,提示也會比較少,難以發(fā)現(xiàn)錯誤。

   2)對于使用DataBinding的項目,每次進入項目,如果有紅色線提示,要clean項目,甚至是重

     啟工具。

   ##DataBinding常見錯誤:

  1) text綁定了data為int型的,會發(fā)生source no found的錯誤。這一點是不同于直text="數(shù)

   字",應該寫一個函數(shù)進行轉化。

  2)databinding有非null判斷機制,在沒有binding.setModel的時候,在xml引用module是沒有

    報錯的。

    但是不要弄巧成拙,如將bean的類型寫成引用類型,這樣當值綁定text,很容易空指針

  和類型轉換異常。

  3) 當工程重命名或者其它的情況下,databinding的代理類會出現(xiàn)問題,只需要將布局剪切重新

    粘貼一下就可以了。

  4) 使用ObservableField注意要初始化,否則會NullPointer

  5) 使用BaseObservable接口,set方法要依賴于BR,而這個類通常有時不會生成出來,可能導致

   xml往module綁定不成功。如果代碼沒有問題,BR沒有生成,重啟as可解決問題。

  6)

    Error:Execution failed for task ':VedioPlay:compileDebugJavaWithJavac'.

    > java.lang.RuntimeException: Found data binding errors.

    ****/ data binding error ****msg:Could not find accessor com.example.btsj.vedioplay.MediaPlayActivity.pause

    file:D:\ChenZhangToolBag\DemoCode\QuickDemos\VedioPlay\src\main\res\layout\activity_mediaplay.xml

    loc:39:35 - 39:52

    ****\ data binding error ****

   綁定的方法不是public就會報這個錯。

  7)特別是android studio老是卡住,強制關閉再運行項目就容易出現(xiàn)databinding的BR找不到的錯誤。

  8)引用自己的函數(shù),當函數(shù)的參數(shù)類型不匹配,并不會有任何提示。這個很是蛋痛。

  1.Module和View綁定基礎:

    http://developer.android.com/tools/data-binding/guide.html

   AndroidStudio版本、Gradle版本、API Leavel都要注意。

   1)在gradle在開啟databinding

    2 ) 怎么讓module的值發(fā)生了變化,讓View自動發(fā)生變化

           方式1:讓module繼承BaseObservable,并且在getXXX上加上@Bindable注解,在setXXX方

                        法加上notifyPropertyChanged方法。(一般是在setXXX方法里更新屬性,但是也可

                        以在任何方法里更新屬性。)

public class AA extends BaseObservable {
    private String flag = "";

    @Bindable
    public String getFlag() {
        return flag;
    }


    public void setFlag(String flag) {
        this.flag = flag;
        notifyPropertyChanged(BR.flag);
    }
    ....
}

   方式2:通過Field

   1-2.Module綁定View的“自定義屬性”:

    圖解:

    DataBinding初識

 注意Adapter的前綴是android,而不是app。

 綁定的view的屬性首字母大小寫出錯照常運行。

而且更爽是數(shù)據(jù)鏈牽一發(fā)而動全身,比如 List-Adapter-ListView,如果list改變了,Adapter都不需要

notifyDatasetChanged,ListView就會刷新。

 上面的綁定只是module變了UI會變,如果想UI變了,module也會變,要雙向綁定。在xml中@后面要加上=號。

2.關于事件的綁定,以按鈕的onClick為例:

    1)定義click事件模型:

<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <data>
        <variable
            name="result"
            type="cn.xinyi.com.demo1.module.Result"/>
        <variable
            name="handler"
            type="cn.xinyi.com.demo1.handler.LoginHandler"/>
    </data>

     LoginHandler即為登錄按鈕的事件模型

  DataBinding初識

 2)在Activity里綁定View和Model

    DataBinding初識

其實上面的CallBack完全可以使用網(wǎng)絡請求客戶端的CallBack,不需要自定義,有點多余。

2.關于Adapter的綁定,包括ListView 和 RecyclerView的。

  綁定Adapter,不用findViewById,也不用在holder里緩存View,也不需要將data根據(jù)position一個個的設置給holder中的view了。

  》》RecyclerView的Adapter的綁定

    網(wǎng)上例子很多,不說了。

  》》ListView的Adapter的綁定

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    MyViewHolder holder = null;
    if(convertView == null){
        ViewDataBinding binding = DataBindingUtil.inflate(LayoutInflater
                .from(parent.getContext()), R.layout.test, null, false);
        convertView = binding.getRoot();
        holder = new MyViewHolder();
        holder.setBinding(binding);
        convertView.setTag(holder);
    }else{
        holder = (MyViewHolder) convertView.getTag();
    }
    holder.getBinding().setVariable(BR.bean, mDatas.get(position));
    holder.getBinding().executePendingBindings();
    if(position % 2 == 0){
        holder.getBinding().getRoot().findViewById(R.id.tv).setBackgroundColor(Color.GREEN);
    }
    return convertView;
}

private class MyViewHolder{
    private ViewDataBinding binding;

    public void setBinding(ViewDataBinding binding) {
        this.binding = binding;
    }

    public ViewDataBinding getBinding() {
        return this.binding;
    }
}

3.自定義組合View的綁定

親測,也可以綁定。DataBinding初識

DataBinding雖然好用,但是同時也給我?guī)砹撕芏嗫鄲馈=?jīng)常性無緣無故的BR找不到,像是有緩存一樣,clean、rebuild、sys、重啟電腦都解決不了。

新的技術一定要注意它的坑,技術的造型對后面的工作十分地重要。

----------------------------紀念我的DataBinding的一個大坑-------------------------

在10月14號,我更新了AS到2.2.1,然后電腦突然藍屏,第二天打開電腦項目就跑不起來了。然后日志報錯:但是奇怪的是另外一個哥們的項目clean之后還能跑起來。

D:\DevWork\Code\Android\ProBTSJ\Pro1_Student\src\main\java\com\btsj\hpx\activity\FindPasswordStepOneActivity.java

Error:(15, 32) 錯誤: 程序包com.btsj.hpx.databinding不存在

Error:(28, 13) 錯誤: 找不到符號

符號:  類 ActivityFindPasswordSteponeBinding

位置: 類 FindPasswordStepOneActivity

D:\DevWork\Code\Android\ProBTSJ\Pro1_Student\src\main\java\com\btsj\hpx\bean\module\FindPasswordStepOneActivityEventHandler.java

Error:(14, 32) 錯誤: 程序包com.btsj.hpx.databinding不存在

Error:(49, 13) 錯誤: 找不到符號

符號:  類 ActivityFindPasswordSteponeBinding

位置: 類 FindPasswordStepOneActivityEventHandler

Error:(81, 52) 錯誤: 找不到符號

符號:  類 ActivityFindPasswordSteponeBinding

位置: 類 FindPasswordStepOneActivityEventHandler

D:\DevWork\Code\Android\ProBTSJ\Pro1_Student\src\main\java\com\btsj\hpx\activity\FindPasswordStepTwoActivity.java

Error:(11, 32) 錯誤: 程序包com.btsj.hpx.databinding不存在

Error:(21, 13) 錯誤: 找不到符號

符號:  類 ActivityFindPasswordSteptwoBinding

位置: 類 FindPasswordStepTwoActivity

D:\DevWork\Code\Android\ProBTSJ\Pro1_Student\src\main\java\com\btsj\hpx\activity\LoginActivity.java

Error:(15, 32) 錯誤: 程序包com.btsj.hpx.databinding不存在

Error:(22, 5) 錯誤: 找不到符號

符號:  類 ActivityLoginNewBinding

位置: 類 LoginActivity

D:\DevWork\Code\Android\ProBTSJ\Pro1_Student\src\main\java\com\btsj\hpx\bean\module\LoginHandler_Module.java

Error:(24, 32) 錯誤: 程序包com.btsj.hpx.databinding不存在

Error:(57, 13) 錯誤: 找不到符號

符號:  類 ActivityLoginNewBinding

位置: 類 LoginHandler_Module

Error:(61, 29) 錯誤: 找不到符號

符號:  類 ActivityLoginNewBinding

位置: 類 LoginHandler_Module

D:\DevWork\Code\Android\ProBTSJ\Pro1_Student\src\main\java\com\btsj\hpx\fragment\HomePageFragment.java

Error:(28, 32) 錯誤: 程序包com.btsj.hpx.databinding不存在

Error:(61, 13) 錯誤: 找不到符號

符號:  類 FragHomePageBinding

位置: 類 HomePageFragment

D:\DevWork\Code\Android\ProBTSJ\Pro1_Student\src\main\java\com\btsj\hpx\fragment\PersonalFragment.java

Error:(36, 32) 錯誤: 程序包com.btsj.hpx.databinding不存在

Error:(49, 13) 錯誤: 找不到符號

符號:  類 FragPersonal2NewBinding

位置: 類 PersonalFragment

D:\DevWork\Code\Android\ProBTSJ\Pro1_Student\src\main\java\com\btsj\hpx\activity\NearbyStudentActivity.java

Error:(28, 32) 錯誤: 程序包com.btsj.hpx.databinding不存在

Error:(44, 13) 錯誤: 找不到符號

符號:  類 ActivityNearbyStudentBinding

位置: 類 NearbyStudentActivity

D:\DevWork\Code\Android\ProBTSJ\Pro1_Student\src\main\java\com\btsj\hpx\activity\NearbyStudyCenterActivity.java

Error:(37, 32) 錯誤: 程序包com.btsj.hpx.databinding不存在

Error:(54, 13) 錯誤: 找不到符號

符號:  類 ActivityNearbyStudycenterBinding

位置: 類 NearbyStudyCenterActivity

D:\DevWork\Code\Android\ProBTSJ\Pro1_Student\src\main\java\com\btsj\hpx\activity\person\BrowsedVideosRecordActivity.java

Error:(19, 32) 錯誤: 程序包com.btsj.hpx.databinding不存在

Error:(41, 13) 錯誤: 找不到符號

符號:  類 ActivityBrowsedVideosBinding

位置: 類 BrowsedVideosRecordActivity

D:\DevWork\Code\Android\ProBTSJ\Pro1_Student\src\main\java\com\btsj\hpx\activity\person\PaperRecordDetailActivity.java

Error:(24, 32) 錯誤: 程序包com.btsj.hpx.databinding不存在

Error:(50, 13) 錯誤: 找不到符號

符號:  類 ActivityPagerRecordDetailBinding

位置: 類 PaperRecordDetailActivity

D:\DevWork\Code\Android\ProBTSJ\Pro1_Student\src\main\java\com\btsj\hpx\base\BaseListAdapter.java

Error:(11, 20) 錯誤: 找不到符號

符號:  類 BR

位置: 程序包 com.btsj.hpx

D:\DevWork\Code\Android\ProBTSJ\Pro1_Student\src\main\java\com\btsj\hpx\bean\module\FindPasswordStepTwoActivityEventHandler.java

Error:(12, 32) 錯誤: 程序包com.btsj.hpx.databinding不存在

Error:(31, 13) 錯誤: 找不到符號

符號:  類 ActivityFindPasswordSteptwoBinding

位置: 類 FindPasswordStepTwoActivityEventHandler

Error:(36, 52) 錯誤: 找不到符號

符號:  類 ActivityFindPasswordSteptwoBinding

位置: 類 FindPasswordStepTwoActivityEventHandler

D:\DevWork\Code\Android\ProBTSJ\Pro1_Student\src\main\java\com\btsj\hpx\fragment\SelfTestingFragment.java

Error:(29, 32) 錯誤: 程序包com.btsj.hpx.databinding不存在

Error:(49, 13) 錯誤: 找不到符號

符號:  類 FragTestPaperBinding

位置: 類 SelfTestingFragment

D:\DevWork\Code\Android\ProBTSJ\Pro1_Student\src\main\java\com\btsj\hpx\gensee\GeeseeLiveActivity.java

Error:(32, 32) 錯誤: 程序包com.btsj.hpx.databinding不存在

Error:(72, 13) 錯誤: 找不到符號

符號:  類 ActivityGeeseeLiveBinding

位置: 類 GeeseeLiveActivity

D:\DevWork\Code\Android\ProBTSJ\Pro1_Student\src\main\java\com\btsj\hpx\share\ParseListener.java

Error:(3, 1) 錯誤: 找不到符號

符號:  靜態(tài) T

位置: 類

D:\DevWork\Code\Android\ProBTSJ\Pro1_Student\src\main\java\com\btsj\hpx\bean\module\LoginParams_Module.java

Error:(7, 20) 錯誤: 找不到符號

符號:  類 BR

位置: 程序包 com.btsj.hpx

Error:(24, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 LoginParams_Module

Error:(34, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 LoginParams_Module

D:\DevWork\Code\Android\ProBTSJ\Pro1_Student\src\main\java\com\btsj\hpx\bean\module\StudyPlanModule.java

Error:(6, 20) 錯誤: 找不到符號

符號:  類 BR

位置: 程序包 com.btsj.hpx

Error:(37, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 StudyPlanModule

Error:(47, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 StudyPlanModule

Error:(58, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 StudyPlanModule

Error:(68, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 StudyPlanModule

Error:(78, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 StudyPlanModule

Error:(88, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 StudyPlanModule

Error:(98, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 StudyPlanModule

Error:(108, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 StudyPlanModule

Error:(118, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 StudyPlanModule

Error:(128, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 StudyPlanModule

Error:(138, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 StudyPlanModule

Error:(148, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 StudyPlanModule

Error:(158, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 StudyPlanModule

D:\DevWork\Code\Android\ProBTSJ\Pro1_Student\src\main\java\com\btsj\hpx\activity\person\AnswerRecrodDetailBean.java

Error:(6, 20) 錯誤: 找不到符號

符號:  類 BR

位置: 程序包 com.btsj.hpx

Error:(56, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 AnswerRecrodDetailBean

Error:(74, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 AnswerRecrodDetailBean

Error:(188, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 AnswerRecrodDetailBean

Error:(222, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 AnswerRecrodDetailBean

D:\DevWork\Code\Android\ProBTSJ\Pro1_Student\src\main\java\com\btsj\hpx\activity\study_circle\StudyCircleDingAdapter.java

Error:(9, 32) 錯誤: 程序包com.btsj.hpx.databinding不存在

Error:(33, 9) 錯誤: 找不到符號

符號:  類 AdapterStudyCircleDingListBinding

位置: 類 StudyCircleDingAdapter

Error:(33, 55) 錯誤: 找不到符號

符號:  類 AdapterStudyCircleDingListBinding

位置: 類 StudyCircleDingAdapter

D:\DevWork\Code\Android\ProBTSJ\Pro1_Student\src\main\java\com\btsj\hpx\adapter\personal\Personal2OptionsAdapter.java

Error:(6, 20) 錯誤: 找不到符號

符號:  類 BR

位置: 程序包 com.btsj.hpx

Error:(29, 29) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 Personal2OptionsAdapter

D:\DevWork\Code\Android\ProBTSJ\Pro1_Student\src\main\java\com\btsj\hpx\bean\personal\AdapterImageAndTitleBean.java

Error:(6, 20) 錯誤: 找不到符號

符號:  類 BR

位置: 程序包 com.btsj.hpx

Error:(43, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 AdapterImageAndTitleBean

Error:(53, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 AdapterImageAndTitleBean

D:\DevWork\Code\Android\ProBTSJ\Pro1_Student\src\main\java\com\btsj\hpx\bean\FragTestPagerAdapter.java

Error:(6, 20) 錯誤: 找不到符號

符號:  類 BR

位置: 程序包 com.btsj.hpx

Error:(29, 29) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 FragTestPagerAdapter

D:\DevWork\Code\Android\ProBTSJ\Pro1_Student\src\main\java\com\btsj\hpx\bean\module\TestPapgerModule.java

Error:(6, 20) 錯誤: 找不到符號

符號:  類 BR

位置: 程序包 com.btsj.hpx

Error:(26, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 TestPapgerModule

Error:(36, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 TestPapgerModule

Error:(46, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 TestPapgerModule

Error:(56, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 TestPapgerModule

Error:(66, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 TestPapgerModule

D:\DevWork\Code\Android\ProBTSJ\Pro1_Student\src\main\java\com\btsj\hpx\bean\module\UserModule.java

Error:(6, 20) 錯誤: 找不到符號

符號:  類 BR

位置: 程序包 com.btsj.hpx

Error:(35, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 UserModule

Error:(45, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 UserModule

Error:(55, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 UserModule

Error:(65, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 UserModule

D:\DevWork\Code\Android\ProBTSJ\Pro1_Student\src\main\java\com\btsj\hpx\bean\personal\Personal2OptionsItemBean.java

Error:(6, 20) 錯誤: 找不到符號

符號:  類 BR

位置: 程序包 com.btsj.hpx

Error:(29, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 Personal2OptionsItemBean

Error:(39, 31) 錯誤: 找不到符號

符號:  變量 BR

位置: 類 Personal2OptionsItemBean

各種清理,重做系統(tǒng),重新配置環(huán)境,各種百度,各種databinding群里請教大神。最后還是在看似無解的日志里找到了答案,就是我加深的那個錯誤日志。

----------------------------------------------------------------------------------

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

本文名稱:DataBinding初識-創(chuàng)新互聯(lián)
標題鏈接:http://aaarwkj.com/article32/gcopc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、品牌網(wǎng)站制作、企業(yè)網(wǎng)站制作、云服務器、定制開發(fā)、服務器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設網(wǎng)站維護公司
亚洲综合一区二区三区不卡 | 日本成熟亚洲中文字幕的| 亚洲精品网站国产高清| 色哟哟精品丝袜一区二区| 亚洲香蕉av一区二区蜜桃| 视频精品一区二区在线观看| 97精品久久九九中文字幕| 免费亚洲一区二区三区| 亚洲精品色在线网站国产呦| 中文字幕成人在线电影| 色婷婷激一区二区三区| 97超频在线观看免费| 国产中文字幕自拍视频| 精品一区二区亚洲精品| 韩国福利短片在线观看| 亚洲天堂成人av蜜臀| 国产三级国产精品国产专播| 国产伦精品一区二区三区免费视频| 婷婷色综合一区二区三区| 国内精品老年人视频网站| 国产成人国产三级国产精品| 尤物视频最新在线观看| 亚洲国产成人综合一区二区三区| 亚洲三级成人一区在线| 国产免费很黄很色视频| 久久一区二区三区播放| 久久亚洲av麻衣北条麻妃| 美女张开腿让男人插进去| 久久久av在线免费观看| 国产精品欧美日韩精品| 亚洲精品国产亚洲精品| 色在线观看综合亚洲欧洲| 亚洲美女插入av网络导航| 一区二区三区国产精品乱码| 亚洲激情欧美激情在线| 色欧美在线视频观看日韩| 自偷自拍在线免费观看| 尤物视频官网在线观看| 国产在线视频不卡一线路| 热99精品视频在线观看| 久久99精品国产99久久无|