Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将数字从十进制转换为二进制_Android_Kotlin - Fatal编程技术网

Android 将数字从十进制转换为二进制

Android 将数字从十进制转换为二进制,android,kotlin,Android,Kotlin,不要严格评判。我最近开始学习kotlin,这是我的第一个项目 import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.EditText import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onC

不要严格评判。我最近开始学习kotlin,这是我的第一个项目

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.EditText
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    button1.setOnClickListener {
        val t1:EditText=findViewById(R.id.editText1)
        var p:Int=Integer.parseInt(t1.getText().toString())
        var f:String=""
        while (p != 0)
            p = p / 2
            f += p % 2
        f = f.reversed()
        val h = f.toIntOrNull()
        editText2.setText(h!!)
        }
    }
}
当我点击带有此错误的按钮时,它会滑出

E/AndroidRuntime:致命异常:主 进程:com.example.myapplication,PID:6833 android.content.res.Resources$NotFoundException:字符串资源ID#0x0 位于android.content.res.Resources.getText(Resources.java:351) 位于android.content.res.MiuiResources.getText(MiuiResources.java:97) 位于android.widget.TextView.setText(TextView.java:4562) 在com.example.myapplication.MainActivity$onCreate$1.onClick上(MainActivity.kt:23) 在android.view.view.performClick上(view.java:5647) 在android.view.view$PerformClick.run(view.java:22465) 位于android.os.Handler.handleCallback(Handler.java:754)


欢迎来到Stack Overflow和Android/Kotlin world

这里的问题是,您正在使用整数调用TextView#setText。在android world中,这用于将资源引用传递给字符串,如
android.R.string.ok
,因此您尝试使用未定义的资源。 要使其工作,您需要将
f
传递给setText:
editText2.setText(f)

此外,正如JB Nizet在评论中所述,您错过了while语句后的括号

注意,由于缺少大括号,您的代码可以缩减为
var f=“0”