国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Android Studio第12課關(guān)于databinding

這篇具有很好參考價(jià)值的文章主要介紹了Android Studio第12課關(guān)于databinding。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


?? 作者介紹:友友們好我是亂披風(fēng)錘,大二學(xué)生黨一枚
??作者主頁:亂披風(fēng)錘的個(gè)人博客主頁.亂披風(fēng)錘
??我和友友們一樣喜歡編輯,天天敲代碼,沉迷學(xué)習(xí),日漸消瘦。很榮幸能向大家分享我的所學(xué),和大家一起進(jìn)步。如果文章有錯(cuò)誤,歡迎在評論區(qū)指正。那么開始今天的學(xué)習(xí)吧!
?? 支持我:點(diǎn)贊??+收藏??+留言??


一、開啟Databinding

//在build.gradle中添加
android {
    compileSdk 32
    dataBinding{
        enabled=true
    }

二、添加依賴

 implementation("com.squareup.okhttp3:okhttp:4.9.3")
    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
    implementation 'com.squareup.okhttp3:logging-interceptor:4.9.3'

    implementation 'com.github.bumptech.glide:glide:4.13.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.13.0'

三、打開網(wǎng)絡(luò)權(quán)限

Android Studio第12課關(guān)于databinding

四、生成databinding布局

光標(biāo)在布局文件的根布局–>點(diǎn)擊Alt + Enter–>點(diǎn)擊 “Convert to data binding layout

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">

    <data>
        <!--放變量數(shù)據(jù)-->

    </data>

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">

五、創(chuàng)建數(shù)據(jù)類

package com.hnucm.databinding;

import androidx.databinding.BaseObservable;

public class Person extends BaseObservable {
    public int age;
    public String name;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
        notifyChange();
    }
}

六、在data變量中聲明變量及類全名

    <data>
        <variable
            name="itemlist"
            type="com.hnucm.databinding.ChatItem.ChatlistDTO" />

    </data>

七、通過@{}使用變量;(默認(rèn)值無需加引號(hào),且只在預(yù)覽視圖顯示)

<TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="28dp"
            android:layout_marginTop="13dp"
            android:text="@{itemlist.name}"
            app:layout_constraintStart_toEndOf="@+id/imageView"
            app:layout_constraintTop_toTopOf="parent" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="7dp"
            android:layout_marginTop="20dp"
            android:text="@{itemlist.content}"
            app:layout_constraintStart_toStartOf="@+id/textView"
            app:layout_constraintTop_toBottomOf="@+id/textView" />

八、databinding在recycleview中使用

 ActivityMainBinding activityMainBinding;
    public List<ChatItem.ChatlistDTO> chatlist = new ArrayList<>();
    MyAdapter myAdapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        activityMainBinding = DataBindingUtil.setContentView(this,R.layout.activity_main);
        Api api = RetrofitUtils.getRetrofit("http://121.4.44.56/").create(Api.class);
        Call<ChatItem> chatItemCall = api.getChatList();
        chatItemCall.enqueue(new Callback<ChatItem>() {
            @Override
            public void onResponse(Call<ChatItem> call, Response<ChatItem> response) {
                ChatItem chatItem = response.body();
                chatlist.addAll(chatItem.chatlist);
                myAdapter.notifyDataSetChanged();
            }

            @Override
            public void onFailure(Call<ChatItem> call, Throwable t) {

            }
        });
        myAdapter = new MyAdapter();
        activityMainBinding.recyclerView.setAdapter(myAdapter);
        activityMainBinding.recyclerView.setLayoutManager(new LinearLayoutManager(this));
    }

    public class MyAdapter extends RecyclerView.Adapter<MyViewHodler>{

        @NonNull
        @Override
        public MyViewHodler onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            ChatItemBinding chatItemBinding = DataBindingUtil.
                    inflate(LayoutInflater.from(MainActivity.this),R.layout.chat_item,parent,false);
            MyViewHodler myViewHodler = new MyViewHodler(chatItemBinding.getRoot());
            myViewHodler.chatItemBinding = chatItemBinding;
            return myViewHodler;
        }

        @Override
        public void onBindViewHolder(@NonNull MyViewHodler holder, int position) {
            holder.chatItemBinding.setItemlist(chatlist.get(position));
        }

        @Override
        public int getItemCount() {
            return chatlist.size();
        }
    }

    public class MyViewHodler extends RecyclerView.ViewHolder{
       public  ChatItemBinding chatItemBinding;
        public MyViewHodler(@NonNull View itemView) {
            super(itemView);
        }
    }

}

Android Studio第12課關(guān)于databinding


總結(jié)

好了,那么今天的學(xué)習(xí)就到這里了。友友們覺得不錯(cuò)的可以給個(gè)關(guān)注,點(diǎn)贊或者收藏哦!感謝各位友友們的支持。以下的代碼希望各位大佬們自行檢驗(yàn)哦,畢竟親手操作讓記憶更加深刻。文章來源地址http://www.zghlxwxcb.cn/news/detail-424075.html

到了這里,關(guān)于Android Studio第12課關(guān)于databinding的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Android Databinding 使用教程

    Android Databinding 是 Android Jetpack 的一部分,它允許你直接在 XML 布局文件中綁定 UI 組件到數(shù)據(jù)源。通過這種方式,你可以更簡潔、更直觀地更新 UI,而無需編寫大量的 findViewById 和 setText/setImageResource 等代碼。 啟用 Databinding 在你的 app 模塊的 build.gradle 文件中啟用 Databinding: 定

    2024年03月28日
    瀏覽(19)
  • 關(guān)于android studio 幾個(gè)簡單的問題說明

    關(guān)于android studio 幾個(gè)簡單的問題說明

    自信是成功的第一步。——愛迪生 1.?android studio 如何運(yùn)行不同項(xiàng)目是否要更換不同的sdk 和 gradle ? ?2.編譯Gradle總是錯(cuò)誤為什么 ?3.如何清理android studio 的緩存 4.?關(guān)于android Studio中的build 下面的rebuild project ?

    2024年02月11日
    瀏覽(22)
  • Android databinding 被多次定義

    一、報(bào)錯(cuò): ????????AndroidStudio運(yùn)行代碼時(shí),編譯器報(bào)? Type androidx.databinding.Bindable is defined multiple times...... 二、解決: ? ? ? ? 點(diǎn)擊 Build - Clean Project,關(guān)閉編譯器再打開即可。 三、解決過程: ? ? ? ? 在使用AndroidStudio進(jìn)行代碼分支切換時(shí),偶爾會(huì)出現(xiàn)資源沖突的情況。

    2024年02月13日
    瀏覽(21)
  • 【Android】DataBinding 最全使用解析

    【Android】DataBinding 最全使用解析

    DataBinding 是谷歌官方在2015谷歌I/O大會(huì)發(fā)布的一個(gè)數(shù)據(jù)綁定框架,是 MVVM 模式在 Android 上的一種實(shí)現(xiàn),用于降低布局和邏輯的耦合性,使代碼邏輯更加清晰。 DataBinding 能夠省去我們一直以來的 findViewById() 步驟,大量減少 Activity 內(nèi)的代碼, DataBinding 也是 Android Jetpack 中非常重要

    2024年02月15日
    瀏覽(20)
  • Android DataBinding 基礎(chǔ)入門(學(xué)習(xí)記錄)

    Android DataBinding 基礎(chǔ)入門(學(xué)習(xí)記錄)

    一、DataBinding簡介 DataBinding 是谷歌官方發(fā)布的一個(gè)框架,顧名思義即為數(shù)據(jù)綁定,是 MVVM 模式在 Android 上的一種實(shí)現(xiàn),用于降低布局和邏輯的耦合性,使代碼邏輯更加清晰。MVVM 相對于 MVP,其實(shí)就是將 Presenter 層替換成了 ViewModel 層。 DataBinding 能夠省去我們一直以來的 findVi

    2024年02月10日
    瀏覽(46)
  • 關(guān)于Android Studio 同步Gradle失敗的解決方案

    關(guān)于Android Studio 同步Gradle失敗的解決方案

    (1)打開Android Studio的Settings找到Gradle的目錄 (2)打開本地文件目錄,找到對應(yīng)的gradle版本,可以通過Index of /gradle/ 下載gradle壓縮包。把目錄中g(shù)radle-7.0.2-bin一堆字符? ? 下?的.lck 和.part文件刪除后。再回到Android Studio中同步即可解決。

    2024年02月02日
    瀏覽(25)
  • Android Studio 關(guān)于android resource linking failed的報(bào)錯(cuò)解決方法

    Android Studio 關(guān)于android resource linking failed的報(bào)錯(cuò)解決方法

    在android studio學(xué)習(xí)過程中經(jīng)常會(huì)遇到一個(gè)android resource linking failed的錯(cuò)誤,在編譯的時(shí)候不會(huì)報(bào)錯(cuò)也沒有提示,一運(yùn)行就出現(xiàn)個(gè)這樣的錯(cuò)誤,這種問題可以分以下兩種情況 1、假如提醒了具體錯(cuò)誤位置,那么這個(gè)錯(cuò)誤大概率是出現(xiàn)在你的 代碼段 里,如下圖 這里提示錯(cuò)誤出現(xiàn)在

    2024年02月15日
    瀏覽(21)
  • 關(guān)于Android Studio 在XML中編碼無代碼提示的問題

    關(guān)于Android Studio 在XML中編碼無代碼提示的問題

    記錄一下終于受不了在activity_main.xml中敲代碼沒有提示,全手敲到網(wǎng)上找解決辦法,到終于順利解決的過程! ? 有提示可太爽啦 ~~ 解決方法: 1. 我的Android Studio開始不懂裝了好些版本的Sdk,然后全部卸載就裝了API 32,可以選擇一個(gè)版本或多個(gè)版本下載下來,然后關(guān)掉軟件?重

    2024年02月07日
    瀏覽(26)
  • Android Studio 關(guān)于BottomNavigationView 無法預(yù)覽視圖我的解決辦法

    Android Studio 關(guān)于BottomNavigationView 無法預(yù)覽視圖我的解決辦法

    一、前言:最近在嘗試一步一步開發(fā)一個(gè)自己的軟件,剛開始遇到的問題就是當(dāng)我們引用 二、我的解決方案: 1.先把這兩個(gè)文件刪掉 2.file-----invalidate 3.考慮到版本兼容性我還修改了 ?把版本降低了 就可見了

    2024年02月14日
    瀏覽(20)
  • android jetpack databinding的基本使用(java)

    android jetpack databinding的基本使用(java)

    開啟databing 修改布局文件 為布局文件添加layout標(biāo)簽。 實(shí)例化布局文件 向布局文件傳遞數(shù)據(jù) 創(chuàng)建一個(gè)Sentence 類,實(shí)例化。傳給布局并顯示。 5. 在布局中引用靜態(tài)類 在sentence類中添加屬性collect ,collect 等于1表示已收藏,0表示收藏。 建立工具類CollectUtil 通過import導(dǎo)入到布局文

    2024年02月10日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包