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);
}
}
}
这是我在计算器 Android 应用程序上显示数字的代码。 我必须使用什么来删除显示的最后一个数字?我还会在 num_Clicked
函数中执行此操作,如下所示:
if (v.getId()== R.id.del_button) {
}
这是我的 xml 代码:
<?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>
最佳答案
您可以使用 substring
方法删除字符串中的最后一个字符。
在捕获删除按下的方法中:
String s = display.getText().toString();
s = s.substring(0, s.length() - 1);
display.setText(s);
这将替换字符串 s 并删除最后一个字符
执行此操作的完整代码是:
包 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) 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());
}
}
}
关于java - 删除计算器应用程序中最后一位数字的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21893558/