如何从 edittext 获取整数并使用 kotlin 将它们相乘
how to get integers from edittext and multiply them using kotlin
我似乎无法弄清楚如何将输入到文本编辑器中的值转换为 srting/int,然后将它们相乘。我有 3 个输入,我想乘以单击按钮,然后显示在文本视图的文本中。
作为查看我的按钮是否有效以及更改文本视图是否有效的练习,我使用了 append 并且它有效,我只是无法让它们相乘。
查看其中一些线程,我似乎仍然无法使其工作:
Android - How to get text from edittext and calculate them?
Android - How to get text from edittext and calculate them?
Convert EditText input to integer and multiply?
Koltin 中的片段代码(我需要缺少的)
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import kotlinx.android.synthetic.main.MultiplyExample.*
class MultiplyExample : Fragment() {
override fun onCreateView( inflater: LayoutInflater, container:
ViewGroup?, savedInstanceState: Bundle? ): View? {
return inflater.inflate(R.layout.fragment_retention, container, false) }
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
button.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View) {
val a: Int = length.text.toString().toInt()
val b: Int = flight.text.toString().toInt()
val c: Int = rotation.text.toString().toInt()
作为 stringbuilder 的追加工作#
val sb = StringBuilder()
sb.append(a).append(b).append(c)
d.text = sb
XML 对于 a,b,c 是一样的
<EditText
android:inputType="number"
您的问题是您试图在没有 findViewById
的情况下引用片段中的小部件。
在您的方法中 onCreateView
在 return 语句之前放置一些类似的代码。
val view = inflater.inflate(R.layout.fragment_retention, container, false)
val a: Int = view.findViewById<TextView>(R.id.length).text.toString().toInt()
val b: Int = view.findViewById<TextView>(R.id.flight).text.toString().toInt()
val c: Int = view.findViewById<TextView>(R.id.rotation).text.toString().toInt()
val multiplication = a * b * c
return view
在片段中尝试以下代码
myView= inflater.inflate(R.layout.fragment_blank, container, false)
myView.multiply_btn.setOnClickListener { myView ->
val number1 =number_et1.text.toString().toInt()
val number2 = number_et2.text.toString().toInt()
val number3 = number_et3.text.toString().toInt()
val multiply: Int = number1 * number2 * number3
answer_tv.text = "Multiply is: " + multiply
}
return myView
希望对你有用。
首先使用 toString() 将 textField 数据转换为字符串,然后使用以下代码将结果数据转换为整数或双精度:
btnSecond.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
double num1,num2,res;
num1 = Double.valueOf(editFirst.getText().toString());
num2 = Double.valueOf(editSecond.getText().toString());
res = num1 - num2;
result.setText(""+res);
我似乎无法弄清楚如何将输入到文本编辑器中的值转换为 srting/int,然后将它们相乘。我有 3 个输入,我想乘以单击按钮,然后显示在文本视图的文本中。 作为查看我的按钮是否有效以及更改文本视图是否有效的练习,我使用了 append 并且它有效,我只是无法让它们相乘。
查看其中一些线程,我似乎仍然无法使其工作:
Android - How to get text from edittext and calculate them?
Android - How to get text from edittext and calculate them?
Convert EditText input to integer and multiply?
Koltin 中的片段代码(我需要缺少的)
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import kotlinx.android.synthetic.main.MultiplyExample.*
class MultiplyExample : Fragment() {
override fun onCreateView( inflater: LayoutInflater, container:
ViewGroup?, savedInstanceState: Bundle? ): View? {
return inflater.inflate(R.layout.fragment_retention, container, false) }
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
button.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View) {
val a: Int = length.text.toString().toInt()
val b: Int = flight.text.toString().toInt()
val c: Int = rotation.text.toString().toInt()
作为 stringbuilder 的追加工作#
val sb = StringBuilder()
sb.append(a).append(b).append(c)
d.text = sb
XML 对于 a,b,c 是一样的
<EditText
android:inputType="number"
您的问题是您试图在没有 findViewById
的情况下引用片段中的小部件。
在您的方法中 onCreateView
在 return 语句之前放置一些类似的代码。
val view = inflater.inflate(R.layout.fragment_retention, container, false)
val a: Int = view.findViewById<TextView>(R.id.length).text.toString().toInt()
val b: Int = view.findViewById<TextView>(R.id.flight).text.toString().toInt()
val c: Int = view.findViewById<TextView>(R.id.rotation).text.toString().toInt()
val multiplication = a * b * c
return view
在片段中尝试以下代码
myView= inflater.inflate(R.layout.fragment_blank, container, false)
myView.multiply_btn.setOnClickListener { myView ->
val number1 =number_et1.text.toString().toInt()
val number2 = number_et2.text.toString().toInt()
val number3 = number_et3.text.toString().toInt()
val multiply: Int = number1 * number2 * number3
answer_tv.text = "Multiply is: " + multiply
}
return myView
希望对你有用。
首先使用 toString() 将 textField 数据转换为字符串,然后使用以下代码将结果数据转换为整数或双精度:
btnSecond.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
double num1,num2,res;
num1 = Double.valueOf(editFirst.getText().toString());
num2 = Double.valueOf(editSecond.getText().toString());
res = num1 - num2;
result.setText(""+res);