得到未解决的参考:将java转换为kotlin时的setText

我想使用Android Studio将Android应用程序演示从java转换为kotlin 。 但是我有一些错误。

一些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; } 

工作室将其转换为

  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.setText("XXXXX")有错误

我将其更改为10 -> statusText.text = "XXXX" ,但错误仍然存​​在。 然而在同一个文件中这样的其他句子是可以的。

怎么了?

 (private val context: Context, statusText: TextView) : AsyncTask<Void, Void, String>() { private val isname = true private val name = "啦啦啦" private val statusText: TextView internal var myhandler: Handler = object : Handler() { override fun handleMessage(msg: Message) { when (msg.what) { 10 -> statusText.text = "XXXXXX" } } } init { this.statusText = statusText as TextView } override fun doInBackground(vararg params: Void): String? { return null } } 

问题是在构造函数更改视图到textview。