Android 文本在下次输入后从文本视图中消失
Android Text vanishes from text view after next input
我是 android 工作室的新手,我正在构建一个计算器应用程序,我的问题是每当我输入一个数字然后 select 一个运算符时,文本视图中的数字就会消失,就像我想要 2+4
,然后按 2
,然后 +
,2
从文本视图中消失,然后当我按 4
,+
消失从文本视图,但结果是正确的
这是我的 java 代码...
buttonAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (edt1 == null){
edt1.setText("");
}else {
mValueOne = Float.parseFloat(edt1.getText() + "");
mAddition = true;
edt1.setText(null);
}
}
});
buttonSub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mValueOne = Float.parseFloat(edt1.getText() + "");
mSubtract = true ;
edt1.setText(null);
}
});
buttonMul.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mValueOne = Float.parseFloat(edt1.getText() + "");
mMultiplication = true ;
edt1.setText(null);
}
});
buttonDivision.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mValueOne = Float.parseFloat(edt1.getText()+"");
mDivision = true ;
edt1.setText(null);
}
});
buttonEqual.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mValueTwo = Float.parseFloat(edt1.getText() + "");
if (mAddition == true){
edt1.setText(mValueOne + mValueTwo +"");
mAddition=false;
}
if (mSubtract == true){
edt1.setText(mValueOne - mValueTwo+"");
mSubtract=false;
}
if (mMultiplication == true){
edt1.setText(mValueOne * mValueTwo+"");
mMultiplication=false;
}
if (mDivision == true){
edt1.setText(mValueOne / mValueTwo+"");
mDivision=false;
}
}
});
buttonC.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edt1.setText("");
}
});
button10.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edt1.setText(edt1.getText()+".");
}
});
}
您正在正确收集数据,但您一直将 edt1 设置为 null,然后当您点击 + 时,edt1 将始终为 null
if (edt1 == null){
edt1.setText("");
}
请问您为什么要使用相同的 editText 字段来执行此操作?
我建议使用 2 个编辑文本字段。
第一个数字为 1
第二个数字 1
然后在文本视图中显示结果?
您可以使用下面的代码实现类似的功能
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="1">
<EditText
android:id="@+id/first_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2"
android:layout_weight="0.40"/>
<EditText
android:id="@+id/second_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2"
android:layout_weight="0.40"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" = "
android:layout_weight="0.10"/>
<TextView
android:id="@+id/result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="4"
android:layout_weight="0.20"/>
</LinearLayout>
然后你可以从first_number和second_number收集数据并在结果中显示结果。
使用 append 方法在已有文本后添加文本
edt1.append(someString);
每次单击按钮时,您都将“编辑文本”设置为空。这将清除其中的所有文本。如果你想添加文本,请使用附加方法。
我是 android 工作室的新手,我正在构建一个计算器应用程序,我的问题是每当我输入一个数字然后 select 一个运算符时,文本视图中的数字就会消失,就像我想要 2+4
,然后按 2
,然后 +
,2
从文本视图中消失,然后当我按 4
,+
消失从文本视图,但结果是正确的
这是我的 java 代码...
buttonAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (edt1 == null){
edt1.setText("");
}else {
mValueOne = Float.parseFloat(edt1.getText() + "");
mAddition = true;
edt1.setText(null);
}
}
});
buttonSub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mValueOne = Float.parseFloat(edt1.getText() + "");
mSubtract = true ;
edt1.setText(null);
}
});
buttonMul.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mValueOne = Float.parseFloat(edt1.getText() + "");
mMultiplication = true ;
edt1.setText(null);
}
});
buttonDivision.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mValueOne = Float.parseFloat(edt1.getText()+"");
mDivision = true ;
edt1.setText(null);
}
});
buttonEqual.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mValueTwo = Float.parseFloat(edt1.getText() + "");
if (mAddition == true){
edt1.setText(mValueOne + mValueTwo +"");
mAddition=false;
}
if (mSubtract == true){
edt1.setText(mValueOne - mValueTwo+"");
mSubtract=false;
}
if (mMultiplication == true){
edt1.setText(mValueOne * mValueTwo+"");
mMultiplication=false;
}
if (mDivision == true){
edt1.setText(mValueOne / mValueTwo+"");
mDivision=false;
}
}
});
buttonC.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edt1.setText("");
}
});
button10.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edt1.setText(edt1.getText()+".");
}
});
}
您正在正确收集数据,但您一直将 edt1 设置为 null,然后当您点击 + 时,edt1 将始终为 null
if (edt1 == null){
edt1.setText("");
}
请问您为什么要使用相同的 editText 字段来执行此操作?
我建议使用 2 个编辑文本字段。
第一个数字为 1 第二个数字 1
然后在文本视图中显示结果?
您可以使用下面的代码实现类似的功能
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="1">
<EditText
android:id="@+id/first_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2"
android:layout_weight="0.40"/>
<EditText
android:id="@+id/second_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2"
android:layout_weight="0.40"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" = "
android:layout_weight="0.10"/>
<TextView
android:id="@+id/result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="4"
android:layout_weight="0.20"/>
</LinearLayout>
然后你可以从first_number和second_number收集数据并在结果中显示结果。
使用 append 方法在已有文本后添加文本
edt1.append(someString);
每次单击按钮时,您都将“编辑文本”设置为空。这将清除其中的所有文本。如果你想添加文本,请使用附加方法。