Reputation: 25
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);
}
}
}
This is my code for the digits to be displayed on a calculator android app. What would i have to use to delete the last digit displayed? Also would i do this inside the num_Clicked
function, like this:
if (v.getId()== R.id.del_button) {
}
This is my xml code:
<?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>
Upvotes: 0
Views: 3850
Reputation: 1115
You can remove the last character in a string by using the substring
method.
In the method where the delete press is being captured:
String s = display.getText().toString();
s = s.substring(0, s.length() - 1);
display.setText(s);
This will replace the string s with the last character removed
The full code to do this would be:
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) 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());
}
}
}
Upvotes: 2