2017-03-04 28 views
7

Jestem nowy w Koltin i naprawdę kocham go do tej pory, ale trafiłem w szkopuł. Jestem pewien, że brakuje mi czegoś niezwykle, niezwykle podstawowego, ale mimo to jestem zagubiony i doceniam każdą pomoc.Kotlin Android Studio/IntelliJ "Można połączyć z zadaniem" Ostrzeżenie o inspekcji

Przekształciłem prostą klasę języka Java w Kotlin za pomocą polecenia Android Studio/IntelliJ. Po tej konwersji otrzymuję ostrzeżenie o inspekcji, że nie jestem pewien, jak rozwiązać ten problem. Przekształciłem 15-20 klas (wiele z nich było znacznie bardziej skomplikowanych) przed Kotlin przed tą klasą i jeszcze nie widziałem tego ostrzeżenia.

enter image description here

Ponownie, wiem, że to musi być coś naprawdę podstawowe. Ale przelewałem przez dokumenty Kotlin dotyczące zmiennych i klas i nie mogłem znaleźć niczego związanego z "przypisaniem" lub inicjowaniem wielu zmiennych naraz. Może nie rozumiem terminów w wiadomości? Mam również wyszukiwane w Google dokładnie ciąg znaków ("Can be joined with assignment") bez skutku.

ImagePagerAdapter.kt

abstract class ImagePagerAdapter(protected var context: Context) : PagerAdapter() { 
    protected var inflater: LayoutInflater 
    protected var images: List<Uri> 

    interface ImageLoadingListener { 
     fun onLoadingComplete() 
     fun onLoadingStarted() 
    } 

    init { 
     this.inflater = LayoutInflater.from(context) 
     this.images = emptyList() 
    } 

    override fun getCount(): Int { 
     return images.size 
    } 

    override fun isViewFromObject(view: View, `object`: Any): Boolean { 
     return view === `object` 
    } 

    override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) { 
     container.removeView(`object` as View) 
    } 

    fun bindImages(images: List<Uri>) { 
     this.images = images 
    } 
} 

Dziękujemy z góry!

Odpowiedz

14

To informacją, że zamiast oddzielnego bloku init, można być inicjalizacji zmiennych w miejscu, gdzie masz zadeklarowane je w klasie, tak jak poniżej:

protected var inflater: LayoutInflater = LayoutInflater.from(context) 
protected var images: List<Uri> = emptyList() 

powinien być uzyskanie Alt+Enter działanie zamiar w miejscu ostrzeżenie to zrobić przepisywanie dla ciebie, tak:

Join declaration and assignment intention action

Dodatkowo w tej postaci, można czyścić typy się trochę LIK e to:

protected var inflater = LayoutInflater.from(context) 
protected var images = emptyList<Uri>() 
+1

Dziękujemy! Ma sens. O dziwo, nie widziałem akcji zamiaru "Przyłącz deklarację i przydział" dopóki nie dotknę "Alt + Enter", aby ręcznie otworzyć menu akcji. Może to błąd? Tak czy inaczej, cieszę się, że to rozwiązano. Dziękujemy za opinię na temat czyszczenia deklaracji typu. Uczenie się szybko :) – madcow