kotlin - устранить ошибку в DataBindingUtil.setContentView () - PullRequest
0 голосов
/ 06 февраля 2019

У меня проблема в DataBindingUtil.setContentView().Отображается следующая ошибка:

[Вывод типа не выполнен: недостаточно информации для вывода параметра T в потоке setContentView (p0: Activity, p1: Int): T!Пожалуйста, укажите это явно.

МОЙ код:

override fun onCreate(savedInstanceState: Bundle?) { 
    super.onCreate(savedInstanceState) 
    // setContentView(R.layout.activity_home) var binding = 
    DataBindingUtil.setContentView(this, R.layout.activity_home) 
} 

Любой, кто поможет мне решить эту ошибку.Я сделал чистую и Rebuild(Invalidate and Restart) также.

Пожалуйста, дайте мне знать любое другое предложение.

Ответы [ 4 ]

0 голосов
/ 19 августа 2019
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
   super.onCreate(savedInstanceState)
   binding = DataBindingUtil.setContentView(this@MainActivity, R.layout.activity_main)
}

В Котлине поначалу все кажется странным.Обратитесь к приведенному выше коду для решения проблемы, даже если ошибка не устранена, обратитесь к приведенному ниже приведению типа.

binding = DataBindingUtil.setContentView<ActivityMainBinding>(this@MainActivity, R.layout.activity_main)
0 голосов
/ 06 февраля 2019

Создайте объект привязки, подобный этому.

 val binding: ActivityMainBinding = DataBindingUtil.setContentView(
        this, R.layout.activity_main)

Вы должны упомянуть Тип привязки активности .У меня есть основной вид деятельности, поэтому тип привязки ActivityMainBinding.Это то, что вы пропустили.

Это должно быть так:

override fun onCreate(savedInstanceState: Bundle?) { 
  super.onCreate(savedInstanceState) 
  setContentView(R.layout.activity_home)
  var binding : ActivityMainBinding = 
  DataBindingUtil.setContentView(this, R.layout.activity_home) 
} 
0 голосов
/ 06 февраля 2019

Использование:

var binding : ActivityHomeBinding = DataBindingUtil.setContentView(this, R.layout.activity_home)

DataBindingUtil.setContentView возвращает привязку конкретного файла макета, переданного в качестве параметра.

0 голосов
/ 06 февраля 2019

кстати Чистая сборка, недействительные и перезапуск - не единственное решение в Android studio #JustKidding :)

Что касается ошибки, с которой вы сталкиваетесь, вам действительно нужно указать View:

val listViewEmployees = findViewById(R.id.listViewEmployees)

как ListView для

val listViewEmployees = findViewById<ListView>(R.id.listViewEmployees)

...