Java 在计算器应用程序中删除最后一个数字的最佳方法是什么
这是我在计算器android应用程序上显示数字的代码我必须使用什么来删除显示的最后一个数字?我还会在Java 在计算器应用程序中删除最后一个数字的最佳方法是什么,java,android,Java,Android,这是我在计算器android应用程序上显示数字的代码我必须使用什么来删除显示的最后一个数字?我还会在num\u Clicked函数中执行此操作,如下所示: package com.gamesup.braingame; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditTex
num\u Clicked
函数中执行此操作,如下所示:
package com.gamesup.braingame;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class Easy extends Activity {
EditText display;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.easy);
display = (EditText)findViewById(R.id.displayText);
display.setText("?");
}
static boolean isEmpty = true;
public void num_Clicked(View v){
Button btn = (Button) findViewById(v.getId());
//getting the button object and using a view to get the id of the buttons
if(isEmpty){
display.setText(btn.getText());
isEmpty = false;
}
else{
display.append(btn.getText().toString());
}
if (v.getId()== R.id.del_button){
String s = display.getText().toString();
s = s.substring(0, s.length() - 1);
display.setText(s);
}
}
}
这是我的xml代码:
if (v.getId()== R.id.del_button) {
}
您可以使用
子字符串
方法删除字符串中的最后一个字符
在捕捉删除按键的方法中:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TableLayout
android:id="@+id/tableLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:id="@+id/number1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="num_Clicked"
android:text="@string/number_1_label" />
<Button
android:id="@+id/number2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="num_Clicked"
android:text="@string/number_2_label" />
<Button
android:id="@+id/number3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="num_Clicked"
android:text="@string/number_3_label" />
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:id="@+id/number4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="num_Clicked"
android:text="@string/number_4_label" />
<Button
android:id="@+id/number5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="num_Clicked"
android:text="@string/number_5_label" />
<Button
android:id="@+id/number6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="num_Clicked"
android:text="@string/number_6_label" />
</TableRow>
<TableRow
android:id="@+id/tableRow3"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:id="@+id/number7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="num_Clicked"
android:text="@string/number_7_label" />
<Button
android:id="@+id/number8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="num_Clicked"
android:text="@string/number_8_label" />
<Button
android:id="@+id/number9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="num_Clicked"
android:text="@string/number_9_label" />
</TableRow>
<TableRow
android:id="@+id/tableRow4"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:id="@+id/del_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="num_Clicked"
android:text="@string/delete_label" />
<Button
android:id="@+id/number0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="num_Clicked"
android:text="@string/number_0_label" />
<Button
android:id="@+id/hash_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="num_Clicked"
android:text="@string/hash_label" />
<Button
android:id="@+id/minus_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="num_Clicked"
android:text="@string/minus_label" />
</TableRow>
</TableLayout>
<EditText
android:id="@+id/displayText"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_above="@+id/tableLayout1"
android:layout_alignLeft="@+id/tableLayout1"
android:layout_alignRight="@+id/tableLayout1"
android:ems="10"
android:inputType="number" />
</RelativeLayout>
这将用删除的最后一个字符替换字符串s
执行此操作的完整代码如下:
软件包com.gamesup.braingame
String s = display.getText().toString();
s = s.substring(0, s.length() - 1);
display.setText(s);
您只是想从字符串中删除最后一个字符吗?它说我无法从可编辑转换为字符串。我已经在显示中使用了EditText。我刚刚更新了答案,将getText()返回的可编辑文本转换为字符串。非常感谢daentech.substring缩短字符串。要附加到字符串,只需使用“+”来连接:
s=s+“#”
就像删除按钮一样,我有一个类似于提交按钮的哈希按钮。但当我点击散列按钮时,它不会显示在屏幕上。我对其余的数字使用了相同的代码,或者散列的工作方式与数字不同?
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class Easy extends Activity {
EditText display;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.easy);
display = (EditText)findViewById(R.id.displayText);
display.setText("?");
}
static boolean isEmpty = true;
public void num_Clicked(View v){
Button btn = (Button) v;
if (v.getId()== R.id.del_button){
String s = display.getText().toString();
s = s.substring(0, s.length() - 1);
display.setText(s);
return;
}
if(isEmpty){
display.setText(btn.getText());
isEmpty = false;
}
else{
display.append(btn.getText().toString());
}
}
}