2017-11-09 1 views
0

Ich habe Code:Fehler "nicht aufgelösten Verweis" in Kotlin Android

package com.example.admin.maytinh 

import android.support.v7.app.AppCompatActivity 
import android.os.Bundle 
import android.view.View 
import com.example.admin.maytinh.R.id.button 
import com.example.admin.maytinh.R.id.editText 
import com.example.admin.maytinh.R.id.editText2 
import com.example.admin.maytinh.R.id.editText3 


class MainActivity : AppCompatActivity() { 

    override fun onCreate(savedInstanceState: Bundle?) { 
     super.onCreate(savedInstanceState) 
     setContentView(R.layout.activity_main) 
     button.setOnClickListener(View.OnClickListener{xuly()}) 
    } 

    public fun xuly(){ 
     val a:Int = editText.text.ToString().ToInt() 
     val b:Int = editText2.text.ToString().ToInt() 
     val c:Int = a + b 
     editText3.text = c.ToString() 
    } 

} 

Wenn ich es ausführen, erhalten i Fehler:

  • ungelöste Referenz setOnClickListener
  • ungelöst Referenz: Text
  • nicht aufgelöste Referenz: ToString

Jeder kann mir erklären, warum das so ist und es beheben Vielen Dank

+0

Wo instanziieren Sie Schaltfläche? LIke-Schaltfläche = findViewById (R.id.button)? selbe für editTexts – DEADMC

+0

Ich fügte hinzu, und ich habe Fehler "nicht aufgelöster Verweis: Text", "unaufgelöster Verweis: ToString" –

Antwort

3

Sie importieren IDs, keine Ansichten. Statt:

import com.example.admin.maytinh.R.id.button 
import com.example.admin.maytinh.R.id.editText 
import com.example.admin.maytinh.R.id.editText2 
import com.example.admin.maytinh.R.id.editText3 

Verwendung dieses:

import kotlinx.android.synthetic.main.activity_main.* 

und fügen Plugin in app gradle Datei:

apply plugin: 'kotlin-android-extensions' 
+0

Für RecyclerView.ViewHolder https://Stackoverflow.com/a/33428208/5710872 – Qamar

2

Es sieht aus wie Sie versuchen, Kotlin Android Extensions zu verwenden. Dazu Import:

import kotlinx.android.synthetic.main.activity_main.* 

statt

import com.example.admin.maytinh.R.id.button 
import com.example.admin.maytinh.R.id.editText 
import com.example.admin.maytinh.R.id.editText2 
import com.example.admin.maytinh.R.id.editText3 

verbringen einige Minuten beim Lesen wie KAE Arbeit - es wird Ihnen helfen, eine Menge.

Darüber hinaus gibt es keine Methoden wie ToString() und ToInt(). Was Sie suchen, ist dies: toString() und toInt().

2

Sie haben unresolved Fehler, weil Sie keine Ansicht importiert haben. Anstelle der Ansicht haben Sie IDs importiert.

Es importiert einzige Ansicht importieren

import kotlinx.android.synthetic.main.<layout_name>.<view_name>; 

oder

Um alle Widget-Eigenschaften für ein bestimmtes Layout zu importieren

import kotlinx.android.synthetic.main.<layout>.* 

Auch ist, müssen Sie die Android-Erweiterung Gradle Plugin zu ermöglichen Die build.gradle-Datei Ihres Moduls:

apply plugin: 'kotlin-android-extensions' 
Verwandte Themen