Estoy intentando probar Kotlin y las extensiones de Android de Kotlin en Android Studio. Probé esto tanto en Android Studio v 1.5.1 en Ubuntu 14.04 como en Android Studio v 1.5.1 en OS X El Capitan con el mismo resultado.
Esto es lo que estoy haciendo:
- Instalo el complemento Kotlin 1.0.0-beta-35950-IJ141-11
- Crea un nuevo proyecto de Android en blanco
- Convierta el archivo MainActivity a Kotlin (a través de ayuda-> findaction-> convertir archivo a kotlin)
- Configurar el proyecto para Kotlin
Luego entro en el archivo content_main.xml generado y agrego una identificación (hola) para el "¡Hola mundo!" Vista de texto.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.gmail.npnster.mykotlinfirstproject.MainActivity"
tools:showIn="@layout/activity_main">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:id="@+id/hello"
/>
</RelativeLayout>
Luego, en la MainActivity convertida, agrego una línea para establecer TextView. (mostrado a continuación). Android Studio me pide (a través de alt-enter) que inserte esta línea (también se muestra a continuación)
import kotlinx.android.synthetic.main.content_main.*
Entonces en este punto todo parece estar bien
pero luego, cuando trato de compilar esto, obtengo
Unresolved reference: kotlinx
Unresolved reference: kotlinx
Unresolved reference: hello
Tenga en cuenta que Yo no instalo la Kotlin Android extensiones plugin. A partir de hace un par de días, se supone que ahora está incluido en el complemento principal y está marcado como obsoleto. (De hecho, si intenta instalarlo cuando tiene el último complemento, no se instala nada nuevo)
¿Alguien ve lo que estoy haciendo mal?
Actividad principal
import android.os.Bundle
import android.support.design.widget.FloatingActionButton
import android.support.design.widget.Snackbar
import android.support.v7.app.AppCompatActivity
import android.support.v7.widget.Toolbar
import android.view.View
import android.view.Menu
import android.view.MenuItem
import kotlinx.android.synthetic.main.content_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val toolbar = findViewById(R.id.toolbar) as Toolbar
setSupportActionBar(toolbar)
print("setting text view value to hey")
hello.text = "hey"
val fab = findViewById(R.id.fab) as FloatingActionButton
fab.setOnClickListener { view -> Snackbar.make(view, "Replace this with your own action", Snackbar.LENGTH_LONG).setAction("Action", null).show() }
}
override fun onCreateOptionsMenu(menu: Menu): Boolean {
// Inflate the menu; this adds items to the action bar if it is present.
menuInflater.inflate(R.menu.menu_main, menu)
return true
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
val id = item.itemId
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true
}
return super.onOptionsItemSelected(item)
}
}