Saya mencoba untuk mencoba Kotlin dan ekstensi Kotlin Android di Android Studio. Saya telah mencoba ini di Android Studio v 1.5.1 di Ubuntu 14.04, dan di Android Studio v 1.5.1 di OS X El Capitan dengan hasil yang sama.
Inilah yang saya lakukan:
- Saya menginstal plugin Kotlin 1.0.0-beta-35950-IJ141-11
- Buat proyek Android kosong baru
- Konversikan file MainActivity ke Kotlin (melalui help-> findaction-> convert file to kotlin)
- Konfigurasi proyek untuk Kotlin
Saya kemudian masuk ke file content_main.xml yang dihasilkan dan menambahkan id (halo) untuk "Hello World!" TextView.
<?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>
Kemudian dalam MainActivity yang dikonversi saya menambahkan baris untuk mengatur TextView. (ditampilkan di bawah). Android Studio kemudian meminta saya (melalui alt-enter) untuk memasukkan baris ini (juga ditampilkan di bawah)
import kotlinx.android.synthetic.main.content_main.*
Jadi pada titik ini semuanya tampak baik-baik saja
tapi kemudian ketika saya mencoba mengkompilasi ini saya dapatkan
Unresolved reference: kotlinx
Unresolved reference: kotlinx
Unresolved reference: hello
Perhatikan bahwa saya tidak memasang plugin ekstensi Android Kotlin. Pada beberapa hari yang lalu, ini sekarang seharusnya disertakan dalam steker utama dan ditandai sebagai usang. (Faktanya jika Anda mencoba menginstalnya ketika Anda memiliki plugin terbaru, tidak ada yang baru yang diinstal)
Adakah yang melihat apa yang saya lakukan salah?
Aktifitas utama
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)
}
}