«android-architecture-components» etiketlenmiş sorular

Sağlam, test edilebilir ve bakımı yapılabilir Android uygulamaları tasarlamanıza yardımcı olan yeni bir kitaplık koleksiyonu. UI bileşen yaşam döngünüzü yönetmek ve veri kalıcılığını yönetmek için sınıflarla başlayın.

10
AndroidX nedir?
Android'in bir oda kütüphanesi hakkında okuyorum. Onların paketi değişti bakınız androidiçin androidx. Bunu anlamadım. Birisi açıklayabilir mi lütfen? implementation "androidx.room:room-runtime:$room_version" annotationProcessor "androidx.room:room-compiler:$room_version" Hatta bu androidpakette de mevcuttur. implementation "android.arch.persistence.room:runtime:$room_version" annotationProcessor "android.arch.persistence.room:compiler:$room_version" Bunun androidxyerine yeni destek kitaplıklarının paketlenmesi ihtiyacı neydi android? Mevcut projelerde vaka ve etki faktörlerini kullanın.



3
AndroidViewModel ve ViewModel
Android Mimarlık Bileşenleri kitaplığının tanıtılmasıyla, AndroidViewModelve dahil olmak üzere birkaç yeni sınıf tanıtıldı ViewModel. Ancak, bu iki sınıf arasındaki farkı anlamakta güçlük çekiyorum. Dokümantasyon özlü açıklanır AndroidViewModelaşağıdaki gibidir: Uygulama içeriği farkında ViewModel Özlü olmayı takdir ediyorum, ama bu tam olarak ne anlama geliyor? Ne zaman kullanmayı tercih etmelidir AndroidViewModelüzerinde ViewModeltersi …

21
ViewModelProviders 1.1.0'da kullanımdan kaldırıldı
Baktığımızda , Google docs için ViewModel, onlar almak için nasıl örnek kod aşağıda göstermek ViewModel: val model = ViewModelProviders.of(this).get(MyViewModel::class.java) En son bağımlılığı kullanırken android.arch.lifecycle:extensions:1.1.1böyle bir sınıf yoktur ViewModelProviders. Gitmek belgeler için ViewModelProviders, diyordum bir yorum gördüm: Bu sınıf, API seviyesi 1.1.0'da kullanımdan kaldırıldı. ViewModelProvider.AndroidViewModelFactory'yi kullanın Sorun şu ki, kullanmaya çalışırken, …

14
AppCompatActivity'de sembol ViewModelProviders çözümlenemiyor
Hey ViewModel'imi çalıştırmaya çalışıyorum ama şimdiye kadar şansım yok. Android Studio hata gösteriyor Cannot resolve symbol 'ViewModelProviders'. Ben bu konu üzerinde bulunan diğer bütün soru düzelterek edildi extends Activityiçin extends AppCompatActivity, ama doğru bir uzanan ediyorum. Neyi kaçırdığımdan emin değilim ... Kodum bu YouTube videosuna dayanıyor MainActivity.java public class MainActivity …

12
Android'de başka bir parçaya gittikten sonra gezinme yığını nasıl temizlenir
Android'de yeni Gezinme Mimarisi Bileşenini kullanıyorum ve yeni bir parçaya geçtikten sonra gezinme yığınını temizlemekte takılı kaldım. Örnek: loginFragment'tayım ve bu parçanın, ana bölüme gittiğimde yığından temizlenmesini istiyorum, böylece kullanıcı geri düğmesine bastığında loginFragment'a geri dönmeyecek. Gezinmek için basit bir NavHostFragment.findNavController (Fragment) .navigate (R.id.homeFragment) kullanıyorum. Mevcut Kod: mAuth.signInWithCredential(credential) .addOnCompleteListener(getActivity(), new …

9
Android Oda Kalıcı Kitaplığı: Yukarı
Android'in Oda kalıcılığı kitaplığı, nesneler veya koleksiyonlar için çalışan @Insert ve @Update ek açıklamalarını zarif bir şekilde içerir. Bununla birlikte, veriler veritabanında mevcut olabileceği veya bulunmayabileceği için bir UPSERT gerektirecek bir kullanım durumum (bir model içeren push bildirimleri) var. Sqlite yerel olarak yükseltmeye sahip değildir ve geçici çözümler bu SO …

5
Bir ViewModel'in LiveData'sını arka plan hizmetinden güncelleme ve UI'yi Güncelleme
Son zamanlarda google tarafından yeni tanıtılan Android Mimarisini keşfediyorum. Gönderen Belgeler ben bu bulduk: public class MyViewModel extends ViewModel { private MutableLiveData<List<User>> users; public LiveData<List<User>> getUsers() { if (users == null) { users = new MutableLiveData<List<Users>>(); loadUsers(); } return users; } private void loadUsers() { // do async operation to …

3
Neden ayrı bir MutableLiveData alt sınıfı LiveData var?
Görünüşe MutableLiveDatagöre, LiveDatayalnızca setValue()ve postValue()yöntemlerini halka açık hale getirmekten farklıdır , oysa LiveDatabunlar korunur. Bu değişiklik için ayrı bir sınıf oluşturmanın ve bu yöntemleri LiveDatakendi içinde genel olarak tanımlamamanın bazı nedenleri nelerdir ? Genel olarak, böyle bir kalıtım biçimi (tek değişiklik olarak belirli yöntemlerin görünürlüğünü arttırmak) iyi bilinen bir uygulama …

4
ViewModel'den Canlı Verileri Gözlemleme
Veri getirmeyi (özellikle Firebase) yönettiğim ayrı bir sınıfım var ve genellikle ondan LiveData nesnelerini döndürüp eşzamansız olarak güncelliyorum. Şimdi döndürülen verilerin bir ViewModel'de depolanmasını istiyorum, ancak sorun şu ki, söz konusu değeri elde etmek için, veri alma sınıfımdan döndürülen LiveData nesnesini gözlemlemem gerekiyor. Gözlem yöntemi, ilk parametre olarak bir LifecycleOwner …

6
Android Odası: Room'u kullanarak ilişki varlıkları ekleyin
İlişkiyi kullanarak Room'daki birçok ilişkiye bir tane ekledim . Ben anılacaktır bu yazıOdadaki ilişki için aşağıdaki kodu yazmak başvurdum. Gönderi, değerlerin veritabanından nasıl okunacağını anlatır, ancak varlıkları veritabanına depolamak userId boş bu da 2 tablo arasında ilişki olmadığı anlamına gelir. Ben ideal yolu emin ne değilim insertbir Userve List of …

2
Bir NavHost için görünüm olarak <androidx.fragment.app.FragmentContainerView> vs <fragment>
Kullanırken androidx.fragment.app.FragmentContainerViewyerine normal bir navHost olarak fragmentapp yönü değiştirildikten sonra bir hedefe gitmenize mümkün değildir. Aşağıdaki hatayı alıyorum: java.lang.IllegalStateException: no current navigation node Düzgün kullanmak için bilmem gereken bir gotcha var mı veya nav bileşenlerini kullanma yöntemim yanlış mı? Manzaralı basit etkinlik xml: ... &lt;androidx.fragment.app.FragmentContainerView android:id="@+id/nav_host_fragment" android:name="androidx.navigation.fragment.NavHostFragment" android:layout_width="match_parent" android:layout_height="match_parent" app:defaultNavHost="true" …
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.