0
Androidスタジオを使用して、アンドロイドアプリのデモをjava
からkotlin
に変換したいと考えています。しかし、私はいくつかのエラーがあります。未解決の参照:javaをkotlinに変換するときのsetText
Javaコードのいくつかは、次のとおりです。
public static class FileServerAsyncTask extends AsyncTask<Void, Void, String> {
private boolean isname=true;
private String name="啦啦啦";
private Context context;
private TextView statusText;
Handler myhandler=new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case 10:
statusText.setText("XXXXX");
}
}
};
/**
* @param context
* @param statusText
*/
public FileServerAsyncTask(Context context, View statusText) {
this.context = context;
this.statusText = (TextView) statusText;
}
Studioは
class FileServerAsyncTask
/**
* @param context
* *
* @param statusText
*/
(private val context: Context, statusText: View) : AsyncTask<Void, Void, String>() {
private val isname = true
private var name = "啦啦啦"
private var statusText: TextView
init {
this.statusText = statusText as TextView
}
internal var myhandler = object : Handler() {
override fun handleMessage(msg: Message) {
when (msg.what) {
10 -> statusText.setText("XXXXX")
else -> {
}
}
}
}
に変換しますが、エラーがまだそこにエラーが、私は10 -> statusText.text = "XXXX"
に変更し10 -> statusText.setText("XXXXX")
であるが、存在する。しかし、同じファイル内のこのような文は大丈夫です。
どういうところが間違っていますか?
あなたはelseブロックを完了する必要があると思います。これは、Kotlinがnullを処理する方法と、statusTextがnullにできないためです。なぜなら、elseブロックにまだ何が含まれているのかわからないため、エラーが発生しているからです –