Verwenden von Xtend für Android -Entwicklung (erneut)
Frage
Ich habe 2 Hauptknackpunkt, um das folgende einfache WebView -Beispiel zu kompilieren:
Der Gussteil
(WebView)findViewById(R$id::webview)
gibtunresolved JvmIdentifiableElement
Der anonyme Klassenteil funktioniert völlig nicht. Ich nehme an, Xtend unterstützt es nicht?
Hier ist der Quellcode:
package com.stackoverflow
import android.app.Activity
import android.webkit.WebView
import android.os.Bundle
import android.webkit.WebViewClient
class HelloWebViewActivity extends Activity
{
WebView _webView
override void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState)
setContentView(R$layout::main)
// Error "Couldn't resolve reference to JvmIdentifiableElement 'WebView'"
_webView = (WebView)findViewById(R$id::webview)
_webView.settings.javaScriptEnabled = true
_webView.loadUrl("http://stackoverflow.com")
// A bunch of complaints towards the anonymous class
_webView.setWebViewClient(new WebViewClient()
{
override shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url)
true
}
})
}
}
und meine .classpath
:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="xtend-gen"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="gen"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins" />
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
<classpathentry kind="con" path="org.eclipse.xtend.XTEND_CONTAINER"/>
<classpathentry kind="output" path="bin/classes"/>
</classpath>
Ideen?
Lösung
1) Casts in Xtend sind 'AS', in Ihrem Fall _webView = findViewById (r $ id :: webView) als WebView
2) Anonyme Klassen werden noch nicht unterstützt. Erwägen Sie stattdessen einen Verschluss, wenn die anonyme Klasse nur eine einzelne Methode hat (http://www.eclipse.org/xtext/xtend/documentation/index.html#closures Abschnitt über die Funktionszuordnung)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow