Android 将数字从十进制转换为二进制
不要严格评判。我最近开始学习kotlin,这是我的第一个项目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
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”
。