I have writtn the code for validation...but while executing the app the validations are not working .like when i clicked the button without entering the details it should show the validations...but instead it is directed on the next page.
this is my activity_main.xml code
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#drawable/ic_launcher_background"
tools:context=".MainActivity">
<TextView
android:id="#+id/plain_text_input"
android:layout_width="260dp"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginEnd="142dp"
android:layout_marginRight="142dp"
android:layout_marginBottom="439dp"
android:drawableLeft="#drawable/ic_action_username"
android:fontFamily="sans-serif"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:text="USERNAME"
android:textColor="#color/WhiteSmoke"
android:textSize="20dp" />
<EditText
android:id="#+id/txtusername"
android:layout_width="293dp"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="41dp"
android:layout_marginBottom="383dp"
android:contextClickable="true"
android:ems="10"
android:hint="ENTER USERNAME"
android:textSize="15dp" />
<TextView
android:id="#+id/editTextTextPersonName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginStart="23dp"
android:layout_marginLeft="23dp"
android:layout_marginEnd="78dp"
android:layout_marginRight="78dp"
android:layout_marginBottom="325dp"
android:drawableLeft="#drawable/ic_action_password"
android:fontFamily="sans-serif"
android:text="PASSWORD"
android:textColor="#color/WhiteSmoke"
android:textSize="20dp" />
<EditText
android:id="#+id/txtpassword"
android:layout_width="277dp"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="56dp"
android:layout_marginBottom="263dp"
android:hint="ENTER PASSWORD"
android:inputType="textPassword"
android:textSize="15dp" />
<androidx.cardview.widget.CardView
android:layout_width="348dp"
android:layout_height="56dp"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:layout_marginRight="28dp"
android:layout_marginBottom="170dp"
app:cardBackgroundColor="#color/DeepPink"
app:cardCornerRadius="30dp"
app:cardElevation="10dp">
<RelativeLayout
android:layout_width="373dp"
android:layout_height="73dp"
android:layout_marginEnd="50dp"
android:layout_marginBottom="100dp">
<Button
android:id="#+id/textView2"
android:layout_width="124dp"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="147dp"
android:layout_marginBottom="18dp"
android:background="#android:color/transparent"
android:freezesText="true"
android:onClick="LOGIN"
android:text="LOGIN "
android:textColor="#color/Black"
android:textSize="25dp" />
</RelativeLayout>
</androidx.cardview.widget.CardView>
<Button
android:id="#+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="118dp"
android:layout_marginRight="118dp"
android:layout_marginBottom="66dp"
android:background="#android:color/transparent"
android:fontFamily="sans-serif"
android:text="SIGN IN NOW"
android:textAllCaps="true"
android:textColor="#color/Black"
android:textSize="20dp" />
<ImageView
android:id="#+id/imageView"
android:layout_width="wrap_content"
android:layout_height="106dp"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="73dp"
android:layout_marginBottom="522dp"
app:srcCompat="#drawable/ticket" />
</RelativeLayout>
and this is my MainActivity.java code
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
EditText txtusername;
EditText txtpassword;
Button textView2;
ToastManager toastManager;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtusername = (EditText) findViewById(R.id.txtusername);
txtpassword = (EditText) findViewById(R.id.txtpassword);
textView2 = (Button) findViewById(R.id.textView2);
Button textView3 = (Button) findViewById(R.id.textView3);
textView3.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View view) {
Intent i = new Intent(MainActivity.this, NewUserActivity.class);
startActivity(i);
}
});
Button textView2 = (Button) findViewById(R.id.textView2);
textView2.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent u = new Intent(getApplicationContext(), MainActivity2.class);
startActivity(u);
}
});
}
public void LOGIN(final View view) {
textView2.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
String username = txtusername.getText().toString().trim();
String password = txtpassword.getText().toString().trim();
ToastManager toastManager = new ToastManager(MainActivity.this);
boolean isAtLeastOneEditTextNotEmpty = !username.isEmpty()
|| !password.isEmpty();
if (isAtLeastOneEditTextNotEmpty) {
if (username.isEmpty()) {
toastManager.addToast("ENTER USERNAME", ToastManager.Duration.LENGTH_SHORT);
} else if (!((username.length() > 6) && (username.length() < 15))) {
toastManager.addToast("USERNAME IS TOO SHORT.IT MUST BE BETWEEN 6-15 CHARACTERS.", ToastManager.Duration.LENGTH_SHORT);
}
if (password.isEmpty()) {
toastManager.addToast("ENTER PASSWORD", ToastManager.Duration.LENGTH_SHORT);
} else if (!((password.length() > 6) && (password.length() < 15))) {
toastManager.addToast("PASSWORD IS TOO SHORT.IT MUST BE BETWEEN 6-15 CHARACTERS.", ToastManager.Duration.LENGTH_SHORT);
}
} else {
toastManager.addToast("ALL FIELDS ARE COMPULSORY", ToastManager.Duration.LENGTH_SHORT);
}
}
});
}
}
There are two types to call the actions
one: is setOnClickListenr
two: (xml) onClick
you are using both in your code
but when you use them both, (setOnClickListenr) will be execute
so the solution is to remove (setOnClickListenr) or remove the (android:onClick="LOGIN")
EDIT:- if you choice to take (setOnClickListenr) don't forget to copy the validation code and paste it in there body like this
public class MainActivity extends AppCompatActivity {
EditText txtusername;
EditText txtpassword;
Button textView2;
ToastManager toastManager;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtusername = (EditText) findViewById(R.id.txtusername);
txtpassword = (EditText) findViewById(R.id.txtpassword);
textView2 = (Button) findViewById(R.id.textView2);
Button textView3 = (Button) findViewById(R.id.textView3);
textView3.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View view) {
Intent i = new Intent(MainActivity.this, NewUserActivity.class);
startActivity(i);
}
});
textView2.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
String username = txtusername.getText().toString().trim();
String password = txtpassword.getText().toString().trim();
ToastManager toastManager = new ToastManager(MainActivity.this);
boolean isAtLeastOneEditTextNotEmpty = !username.isEmpty()
|| !password.isEmpty();
if (isAtLeastOneEditTextNotEmpty) {
if (username.isEmpty()) {
toastManager.addToast("ENTER USERNAME", ToastManager.Duration.LENGTH_SHORT);
} else if (!((username.length() > 6) && (username.length() < 15))) {
toastManager.addToast("USERNAME IS TOO SHORT.IT MUST BE BETWEEN 6-15 CHARACTERS.", ToastManager.Duration.LENGTH_SHORT);
}
if (password.isEmpty()) {
toastManager.addToast("ENTER PASSWORD", ToastManager.Duration.LENGTH_SHORT);
} else if (!((password.length() > 6) && (password.length() < 15))) {
toastManager.addToast("PASSWORD IS TOO SHORT.IT MUST BE BETWEEN 6-15 CHARACTERS.", ToastManager.Duration.LENGTH_SHORT);
}
} else {
toastManager.addToast("ALL FIELDS ARE COMPULSORY", ToastManager.Duration.LENGTH_SHORT);
}
}
});
}
have a nice day
I've made a working simple calculator with some bugs here and there, I decided to make all the buttons round by adding the appropriate drawable xml files to make them round sadly after doing so the buttons now won't work.
Here is the Main.java
package com.example.calculatorinator;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import org.w3c.dom.Text;
import java.util.Locale;
public class MainActivity extends AppCompatActivity {
public class txtEvent implements TextToSpeech.OnInitListener{
#Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS){
textToSpeech.setLanguage(Locale.UK);
}
}
}
Button button0, button1, button2, button3, button4, button5, button6, button7, button8, button9, buttonDecimal, buttonClear, buttonDelete, buttonSign, buttonEquals, buttonAdd, buttonSubtract, buttonMultiply, buttonDivide;
TextView textViewMain, textViewHistory;
TextToSpeech textToSpeech;
float value1, value2;
boolean add, subtract, multiply, divide;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button0 = findViewById(R.id.button0);
button1 = findViewById(R.id.button1);
button2 = findViewById(R.id.button2);
button3 = findViewById(R.id.button3);
button4 = findViewById(R.id.button4);
button5 = findViewById(R.id.button5);
button6 = findViewById(R.id.button6);
button7 = findViewById(R.id.button7);
button8 = findViewById(R.id.button8);
button9 = findViewById(R.id.button9);
buttonDecimal = findViewById(R.id.buttonDecimal);
buttonClear = findViewById(R.id.buttonClear);
buttonDelete = findViewById(R.id.buttonDelete);
buttonSign = findViewById(R.id.buttonSign);
buttonAdd = findViewById(R.id.buttonAdd);
buttonSubtract = findViewById(R.id.buttonSubtract);
buttonMultiply = findViewById(R.id.buttonMultiply);
buttonDivide = findViewById(R.id.buttonDivide);
textViewMain = findViewById(R.id.textViewMain);
textViewHistory = findViewById(R.id.textViewHistory);
buttonEquals = findViewById(R.id.buttonEquals);
button0.setOnClickListener(new button0Event());
button1.setOnClickListener(new button1Event());
button2.setOnClickListener(new button2Event());
button3.setOnClickListener(new button3Event());
button4.setOnClickListener(new button4Event());
button5.setOnClickListener(new button5Event());
button6.setOnClickListener(new button6Event());
button7.setOnClickListener(new button7Event());
button8.setOnClickListener(new button8Event());
button9.setOnClickListener(new button9Event());
buttonDecimal.setOnClickListener(new buttonDecimalEvent());
buttonClear.setOnClickListener(new buttonClearEvent());
buttonDelete.setOnClickListener(new buttonDeleteEvent());
buttonSign.setOnClickListener(new buttonSignEvent());
buttonAdd.setOnClickListener(new buttonAddEvent());
buttonSubtract.setOnClickListener(new buttonSubtractEvent());
buttonMultiply.setOnClickListener(new buttonMultiplyEvent());
buttonDivide.setOnClickListener(new buttonDivideEvent());
buttonEquals.setOnClickListener(new buttonEqualsEvent());
textToSpeech = new TextToSpeech(getApplicationContext(), new txtEvent());
}
private class button0Event implements View.OnClickListener{
#Override
public void onClick(View v){
textViewMain.setText(textViewMain.getText() + "0");
textToSpeech.speak(textViewMain.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}
}
private class button1Event implements View.OnClickListener{
#Override
public void onClick(View v){
textViewMain.setText(textViewMain.getText() + "1");
textToSpeech.speak(textViewMain.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}
}
private class button2Event implements View.OnClickListener{
#Override
public void onClick(View v){
textViewMain.setText(textViewMain.getText() + "2");
textToSpeech.speak(textViewMain.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}
}
private class button3Event implements View.OnClickListener{
#Override
public void onClick(View v){
textViewMain.setText(textViewMain.getText() + "3");
textToSpeech.speak(textViewMain.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}
}
private class button4Event implements View.OnClickListener{
#Override
public void onClick(View v){
textViewMain.setText(textViewMain.getText() + "4");
textToSpeech.speak(textViewMain.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}
}
private class button5Event implements View.OnClickListener{
#Override
public void onClick(View v){
textViewMain.setText(textViewMain.getText() + "5");
textToSpeech.speak(textViewMain.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}
}
private class button6Event implements View.OnClickListener{
#Override
public void onClick(View v){
textViewMain.setText(textViewMain.getText() + "6");
textToSpeech.speak(textViewMain.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}
}
private class button7Event implements View.OnClickListener{
#Override
public void onClick(View v){
textViewMain.setText(textViewMain.getText() + "7");
textToSpeech.speak(textViewMain.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}
}
private class button8Event implements View.OnClickListener{
#Override
public void onClick(View v){
textViewMain.setText(textViewMain.getText() + "8");
textToSpeech.speak(textViewMain.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}
}
private class button9Event implements View.OnClickListener{
#Override
public void onClick(View v){
textViewMain.setText(textViewMain.getText() + "9");
textToSpeech.speak(textViewMain.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}
}
private class buttonDecimalEvent implements View.OnClickListener{
#Override
public void onClick(View v){
textViewMain.setText(textViewMain.getText() + ".");
textToSpeech.speak(textViewMain.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}
}
private class buttonClearEvent implements View.OnClickListener{
#Override
public void onClick(View v){
value1 = 0;
value2 = 0;
textViewMain.setText("");
textViewHistory.setText("");
textToSpeech.speak("Clear", TextToSpeech.QUEUE_FLUSH, null);
}
}
private class buttonDeleteEvent implements View.OnClickListener{
#Override
public void onClick(View v){
String display = textViewMain.getText().toString();
if(!TextUtils.isEmpty(display)){
display = display.substring(0, display.length() -1);
}
textViewMain.setText(display);
}
}
private class buttonSignEvent implements View.OnClickListener{
#Override
public void onClick(View v){
textViewMain.setText("-" + textViewMain.getText());
textToSpeech.speak("Negative" + textViewMain.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}
}
private class buttonAddEvent implements View.OnClickListener{
#Override
public void onClick(View v){
if(!textViewMain.getText().toString().matches("")){
value1 = Float.parseFloat(textViewMain.getText() + "");
add = true;
textViewHistory.setText(textViewMain.getText() + "+");
textViewMain.setText("");
textToSpeech.speak("Plus", TextToSpeech.QUEUE_FLUSH, null);
}
else{
Toast.makeText(MainActivity.this, "Please enter a number first", Toast.LENGTH_LONG).show();
}
}
}
private class buttonSubtractEvent implements View.OnClickListener{
#Override
public void onClick(View v){
if(!textViewMain.getText().toString().matches("")){
value1 = Float.parseFloat(textViewMain.getText() + "");
subtract = true;
textViewHistory.setText(textViewMain.getText() + "-");
textViewMain.setText("");
textToSpeech.speak("Minus", TextToSpeech.QUEUE_FLUSH, null);
}
else{
Toast.makeText(MainActivity.this, "Please enter a number first", Toast.LENGTH_LONG).show();
}
}
}
private class buttonMultiplyEvent implements View.OnClickListener{
#Override
public void onClick(View v){
if(!textViewMain.getText().toString().matches("")){
value1 = Float.parseFloat(textViewMain.getText() + "");
multiply = true;
textViewHistory.setText(textViewMain.getText() + "x");
textViewMain.setText("");
textToSpeech.speak("Times", TextToSpeech.QUEUE_FLUSH, null);
}
else{
Toast.makeText(MainActivity.this, "Please enter a number first", Toast.LENGTH_LONG).show();
}
}
}
private class buttonDivideEvent implements View.OnClickListener{
#Override
public void onClick(View v){
if(!textViewMain.getText().toString().matches("")){
value1 = Float.parseFloat(textViewMain.getText() + "");
divide = true;
textViewHistory.setText(textViewMain.getText() + "/");
textViewMain.setText("");
textToSpeech.speak("Divided by", TextToSpeech.QUEUE_FLUSH, null);
}
else{
Toast.makeText(MainActivity.this, "Please enter a number first", Toast.LENGTH_LONG).show();
}
}
}
private class buttonEqualsEvent implements View.OnClickListener{
#Override
public void onClick(View v){
value2 = Float.parseFloat(textViewMain.getText() + "");
textViewHistory.setText(textViewHistory.getText() + (value2 + ""));
if(add == true){
textViewMain.setText(value1 + value2 + "");
add = false;
}
if(subtract == true){
textViewMain.setText(value1 - value2 + "");
subtract = false;
}
if(multiply == true){
textViewMain.setText(value1 * value2 + "");
multiply = false;
}
if(divide == true){
textViewMain.setText(value1 / value2 + "");
divide = false;
}
textViewHistory.setText(textViewHistory.getText() + "=" + (textViewMain.getText() + ""));
textToSpeech.speak("Equals" + textViewMain.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
value1 = 0;
value2 = 0;
}
}
}
Here is the main xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.calculatorinator.MainActivity"
android:background="#color/Black">
<TextView
android:id="#+id/textViewHistory"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:gravity="top|center"
android:padding="35dp"
android:textAlignment="viewEnd"
android:textSize="25sp" />
<TextView
android:id="#+id/textViewMain"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="71dp"
android:gravity="top|center"
android:padding="35dp"
android:textSize="35sp" />
<LinearLayout
android:id="#+id/linear1"
android:layout_width="match_parent"
android:layout_height="665dp"
android:layout_below="#+id/textViewMain"
android:layout_marginTop="5dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<Button
android:id="#+id/button7"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#drawable/round_button_black"
android:text="7"
android:textColor="#FFFFFF"
android:textSize="20dp"
android:layout_margin="5dp"/>
<Button
android:id="#+id/button8"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#drawable/round_button_black"
android:text="8"
android:textColor="#FFFFFF"
android:textSize="20dp"
android:layout_margin="5dp"/>
<Button
android:id="#+id/button9"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#drawable/round_button_black"
android:text="9"
android:textColor="#FFFFFF"
android:textSize="20dp"
android:layout_margin="5dp"/>
<Button
android:id="#+id/buttonClear"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#drawable/round_button_clear"
android:shadowColor="#F7E43232"
android:text="C"
android:textSize="20dp"
android:layout_margin="5dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal">
<Button
android:id="#+id/button4"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#drawable/round_button_black"
android:text="4"
android:textColor="#FFFFFF"
android:textSize="20dp"
android:layout_margin="5dp"/>
<Button
android:id="#+id/button5"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#drawable/round_button_black"
android:text="5"
android:textColor="#FFFFFF"
android:textSize="20dp"
android:layout_margin="5dp"/>
<Button
android:id="#+id/button6"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#drawable/round_button_black"
android:text="6"
android:textColor="#FFFFFF"
android:textSize="20dp"
android:layout_margin="5dp"/>
<Button
android:id="#+id/buttonDivide"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#drawable/round_button_orange"
android:text="÷"
android:textSize="20dp"
android:layout_margin="5dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal">
<Button
android:id="#+id/button1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#drawable/round_button_black"
android:text="1"
android:textColor="#FFFFFF"
android:textSize="20dp"
android:layout_margin="5dp"/>
<Button
android:id="#+id/button2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#drawable/round_button_black"
android:text="2"
android:textColor="#FFFFFF"
android:textSize="20dp"
android:layout_margin="5dp"/>
<Button
android:id="#+id/button3"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#drawable/round_button_black"
android:text="3"
android:textColor="#FFFFFF"
android:textSize="20dp"
android:layout_margin="5dp"/>
<Button
android:id="#+id/buttonAdd"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#drawable/round_button_orange"
android:text="+"
android:textSize="20dp"
android:layout_margin="5dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal">
<Button
android:id="#+id/buttonDecimal"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#drawable/round_button_orange"
android:text="."
android:textColor="#FFFFFF"
android:textSize="20dp"
android:layout_margin="5dp"/>
<Button
android:id="#+id/button0"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#drawable/round_button_black"
android:text="0"
android:textColor="#FFFFFF"
android:textSize="20dp"
android:layout_margin="5dp"/>
<Button
android:id="#+id/buttonDelete"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#drawable/round_button_delete"
android:text="Del"
android:textSize="20dp"
android:layout_margin="5dp"/>
<Button
android:id="#+id/buttonSubtract"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#drawable/round_button_orange"
android:text="-"
android:textSize="20dp"
android:layout_margin="5dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal">
<Button
android:id="#+id/buttonSign"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#drawable/round_button_orange"
android:text="+/-"
android:textColor="#FFFFFF"
android:textSize="20dp"
android:layout_margin="5dp"/>
<Button
android:id="#+id/buttonEquals"
android:layout_width="108dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#drawable/round_button_orange"
android:text="="
android:textColor="#FFFFFF"
android:textSize="20dp"
android:layout_margin="5dp"/>
<Button
android:id="#+id/buttonMultiply"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#drawable/round_button_orange"
android:text="*"
android:textSize="20dp"
android:layout_margin="5dp"/>
</LinearLayout>
</LinearLayout>
</RelativeLayout>
Added xml files that changes the buttons to circle
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:dither="true"
android:shape="oval">
<solid android:color="#android:color/darker_gray"/>
</shape>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:dither="true"
android:shape="oval">
<solid android:color="#android:color/holo_orange_dark"/>
</shape>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:dither="true"
android:shape="oval">
<solid android:color="#android:color/holo_red_light"/>
</shape>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:dither="true"
android:shape="oval">
<solid android:color="#android:color/holo_red_dark"/>
</shape>
I've been trying to find the problem for a while now any help is greatly appreciated thank you.
PS. How do I lessen the number of xml files but still have a variety of round buttons with different colors?
My calculator was not showing any numbers after pushing the corresponding buttons, I realized the I changed the background color to black while my textView font color was also black, for anyone who was trying to comprehend my question and trying their best to help me I am deeply sorry for wasting your time and thank you.
I'm creating a simple calculator in Android Studio but the equal button didn't work. When I clicked the equal button, the app crash but it didn't show any error message. Other buttons work fine, I couldn't figure out why my equal button didn't work.
This is my MainActivity.java
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Button;
import android.widget.EditText;
import android.view.View;
public class MainActivity extends AppCompatActivity {
private EditText showNum;
private Button one;
private Button two;
private Button three;
private Button four;
private Button five;
private Button six;
private Button seven;
private Button eight;
private Button nine;
private Button zero;
private Button divide;
private Button multiple;
private Button minus;
private Button equal;
private Button dot;
private Button plus;
private Button clear;
private Boolean addButton, multipleButton, minusButton, divideButton;
Float value, currentValue;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
showNum=(EditText) findViewById(R.id.editView);
one = (Button)findViewById(R.id.button1);
two = (Button)findViewById(R.id.button2);
three = (Button)findViewById(R.id.button3);
four = (Button)findViewById(R.id.button4);
five = (Button)findViewById(R.id.button5);
six = (Button)findViewById(R.id.button6);
seven = (Button)findViewById(R.id.button7);
eight = (Button)findViewById(R.id.button8);
nine = (Button)findViewById(R.id.button9);
zero = (Button)findViewById(R.id.button0);
divide = (Button)findViewById(R.id.buttonDivide);
multiple = (Button)findViewById(R.id.buttonMultiple);
minus = (Button)findViewById(R.id.buttonMinus);
equal = (Button)findViewById(R.id.buttonEqual);
dot = (Button)findViewById(R.id.buttonDot);
plus = (Button)findViewById(R.id.buttonPlus);
clear = (Button)findViewById(R.id.buttonC);
clear.setOnClickListener(new View.OnClickListener(){
#Override
public void onClick(View v){
showNum.setText("");
}
});
zero.setOnClickListener(new View.OnClickListener(){
#Override
public void onClick(View v){
showNum.setText(showNum.getText()+"0");
}
});
one.setOnClickListener(new View.OnClickListener(){
#Override
public void onClick(View v){
showNum.setText(showNum.getText()+"1");
}
});
two.setOnClickListener(new View.OnClickListener(){
#Override
public void onClick(View v){
showNum.setText(showNum.getText()+"2");
}
});
three.setOnClickListener(new View.OnClickListener(){
#Override
public void onClick(View v){
showNum.setText(showNum.getText()+"3");
}
});
four.setOnClickListener(new View.OnClickListener(){
#Override
public void onClick(View v){
showNum.setText(showNum.getText()+"4");
}
});
five.setOnClickListener(new View.OnClickListener(){
#Override
public void onClick(View v){
showNum.setText(showNum.getText()+"5");
}
});
six.setOnClickListener(new View.OnClickListener(){
#Override
public void onClick(View v){
showNum.setText(showNum.getText()+"6");
}
});
seven.setOnClickListener(new View.OnClickListener(){
#Override
public void onClick(View v){
showNum.setText(showNum.getText()+"7");
}
});
eight.setOnClickListener(new View.OnClickListener(){
#Override
public void onClick(View v){
showNum.setText(showNum.getText()+"8");
}
});
nine.setOnClickListener(new View.OnClickListener(){
#Override
public void onClick(View v){
showNum.setText(showNum.getText()+"9");
}
});
dot.setOnClickListener(new View.OnClickListener(){
#Override
public void onClick(View v){
showNum.setText(showNum.getText()+".");
}
});
divide.setOnClickListener(new View.OnClickListener(){
#Override
public void onClick(View v){
value = Float.parseFloat(showNum.getText()+"");
divideButton=true;
showNum.setText(null);
}
});
multiple.setOnClickListener(new View.OnClickListener(){
#Override
public void onClick(View v){
if(showNum==null){
showNum.setText("");
}
else{
value = Float.parseFloat(showNum.getText()+"");
multipleButton=true;
showNum.setText(null);
}
}
});
plus.setOnClickListener(new View.OnClickListener(){
#Override
public void onClick(View v){
value = Float.parseFloat(showNum.getText()+"");
addButton=true;
showNum.setText(null);
}
});
minus.setOnClickListener(new View.OnClickListener(){
#Override
public void onClick(View v){
value = Float.parseFloat(showNum.getText()+"");
minusButton=true;
showNum.setText(null);
}
});
equal.setOnClickListener(new View.OnClickListener(){
#Override
public void onClick(View v){
currentValue = Float.parseFloat(showNum.getText()+"");
if (divideButton) {
showNum.setText(value / currentValue + "");
divideButton = false;
Log.i("gina", "b"+divideButton);
}
if (multipleButton){
showNum.setText(value * currentValue + "");
multipleButton = false;
}
if (addButton){
showNum.setText(value+currentValue + "");
addButton = false;
}
if (minusButton){
showNum.setText(value-currentValue + "");
minusButton = false;
}
}
});
}
}
Below is my activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.iu.hsiaoyuanwang.proficiency2.MainActivity">
<EditText
android:id="#+id/editView"
android:layout_alignParentTop="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text=""
android:padding="35dp"
android:textSize="30sp"
android:gravity="top|center" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="#+id/editView"
android:orientation="vertical"
android:id="#+id/linear1">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<Button
android:id="#+id/button7"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="7"
android:textSize="20dp" />
<Button
android:id="#+id/button8"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="8"
android:textSize="20dp"
/>
<Button
android:id="#+id/button9"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="20dp"
android:text="9" />
<Button
android:id="#+id/buttonDivide"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="÷"
android:textSize="20dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<Button
android:id="#+id/button4"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="4"
android:textSize="20dp" />
<Button
android:id="#+id/button5"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="5"
android:textSize="20dp"
/>
<Button
android:id="#+id/button6"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="20dp"
android:text="6" />
<Button
android:id="#+id/buttonMultiple"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="x"
android:textSize="20dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<Button
android:id="#+id/button1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="1"
android:textSize="20dp" />
<Button
android:id="#+id/button2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="2"
android:textSize="20dp"
/>
<Button
android:id="#+id/button3"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="20dp"
android:text="3" />
<Button
android:id="#+id/buttonMinus"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="-"
android:textSize="20dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<Button
android:id="#+id/button0"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="0"
android:textSize="20dp" />
<Button
android:id="#+id/buttonDot"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="."
android:textSize="20dp"
/>
<Button
android:id="#+id/buttonEqual"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="20dp"
android:text="=" />
<Button
android:id="#+id/buttonPlus"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="+"
android:textSize="20dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<Button
android:id="#+id/buttonC"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="C"
android:textSize="20dp" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
As Kuti suggested, its better to keep only one OnClickListener, so keep his advice in mind.
A Boolean is an object, is not true or false, so the sentence if(addButton) when addButton is a Boolean is always false. Try using addButton.booleanValue() or use a boolean instead of a Boolean
I am trying to generate Multiplication Table of any number that is input by user. I have developed the interface for the application but cannot understand where to start with the logical part(coding). What i want is when a user inputs a number into the EditText then in the TextView (id: printArea) should show the table of the input number in the format as given in image 2. [Just to show you example i used TextView in the printArea part and i do not know what to use instead]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity"
android:weightSum="1">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="#+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:text="Please Enter a Number: "
android:textSize="20sp" />
<EditText
android:id="#+id/num"
android:layout_width="90dp"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_marginLeft="30dp"
android:textSize="20sp" />
</LinearLayout>
<Button
android:id="#+id/calculate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="#+id/log"
android:onClick="submitNumber"
android:text="Get Table" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1.0"
android:id="#+id/printArea" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="#+id/clear"
android:layout_width="125dp"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginRight="1dp"
android:text="Clear" />
<Button
android:id="#+id/credits"
android:layout_width="125dp"
android:layout_height="wrap_content"
android:layout_marginLeft="1dp"
android:layout_marginRight="1dp"
android:text="Credits" />
<Button
android:id="#+id/exit"
android:layout_width="125dp"
android:layout_height="wrap_content"
android:layout_marginLeft="1dp"
android:layout_marginRight="2dp"
android:text="Exit" />
</LinearLayout>
</LinearLayout>
and the MainActivity.java is:
package com.example.tara.multiplicationtable;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
EditText num;
Button credits;
Button calculate;
Button clear;
Button exit;
TextView printArea;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
num = new EditText(this);
clear = new Button(this);
calculate = new Button(this);
credits = new Button(this);
calculate = new Button(this);
printArea = new TextView(this);
num = (EditText) findViewById(R.id.num);
credits = (Button) findViewById(R.id.credits);
clear = (Button) findViewById(R.id.clear);
exit = (Button) findViewById(R.id.exit);
printArea = (TextView) findViewById(R.id.printArea);
calculate = (Button) findViewById(R.id.calculate);
calculate.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//change the integer value into string
int num1 = Integer.parseInt(num.getText().toString());
// Perform action on click
for (int i = 1; i <= 10; i++) {
printArea.setText(num1 + "X" + i + "=" + i * num1);
}
}
});
clear.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
num.setText("");
}
});
credits.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
Intent i = new Intent(MainActivity.this, Credits.class);
startActivity(i);
}
});
exit.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
finish();
System.exit(0);
}
});
}
}
when application is launched it should show like thisThe initial state of application
and i want to make the application show the table like this if user input is 2 The Final Result
Make a Listview and then in its adapter add your table data.
Make adapter's layout like this:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="*" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="=" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="4" />
Here are the codes that i used to build the Multiplication Table that i imagined to build. The code for activity_main.xml file will be:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginEnd="1dp"
android:layout_marginStart="2dp"
android:text="#string/Enter_number"
android:textSize="16sp" />
<EditText
android:id="#+id/num"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginEnd="2dp"
android:layout_marginStart="1dp"
android:digits="0123456789"
android:hint="#string/hidden_text"
android:inputType="number"
android:maxLength="3"
android:textSize="16sp" />
</LinearLayout>
<Button
android:id="#+id/calculate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="#string/calculate"
android:imeOptions="actionDone"
android:textSize="16sp"/>
<!--android:onClick="submitNumber"-->
<TextView
android:id="#+id/printArea"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:textSize="20sp"
android:background="#drawable/backimage" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="#+id/clear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginEnd="1dp"
android:layout_marginStart="2dp"
android:textSize="16sp"
android:text="#string/clear"
/>
<Button
android:id="#+id/credits"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginEnd="1dp"
android:layout_marginStart="1dp"
android:textSize="16sp"
android:text="#string/credits" />
<Button
android:id="#+id/exit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="2dp"
android:layout_marginStart="1dp"
android:layout_weight="1"
android:textSize="16sp"
android:text="#string/exit" />
</LinearLayout>
</LinearLayout>
The Code for the MainActivity.java file will be:
package com.example.tara.multiplicationtable;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
EditText num;
Button credits;
Button calculate;
Button clear;
Button exit;
TextView printArea;
//private static final String result = MainActivity.class.getSimpleName();
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
num = new EditText(this);
clear = new Button(this);
calculate = new Button(this);
credits = new Button(this);
calculate = new Button(this);
printArea = new TextView(this);
num = (EditText) findViewById(R.id.num);
credits = (Button) findViewById(R.id.credits);
clear = (Button) findViewById(R.id.clear);
exit = (Button) findViewById(R.id.exit);
calculate = (Button) findViewById(R.id.calculate);
printArea = (TextView) findViewById(R.id.printArea);
calculate.setOnClickListener(new View.OnClickListener() {
// Perform action on Get Table Button click
public void onClick(View v) {
if (num.getText().length() == 0 ){
printArea.setText(R.string.err_msg);
}
else {
//change the integer value into string
printArea.setText("");
int num1 = Integer.parseInt(num.getText().toString());
String result;
for (int i = 1; i <= 10; i++) {
result = (num1 + " X " + i + " = " + i * num1);
printArea.append("\n" + result);
}
}
}
});
clear.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
num.setText("");
printArea.setText("");
}
});
credits.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, Credits.class));
}
});
exit.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "Good Bye, User!", Toast.LENGTH_SHORT).show();
finish();
}
});
}
}
Thank you everyone for the guidance.
I'm trying to create a calculator on Eclipse as an Android application.
I'm having some trouble with the listener for multiple buttons.
I know many solutions are available on Internet for that project but I'm learning so I really would like to understand where is my mistake.
Here is my xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="#dimen/activity_vertical_margin"
android:paddingLeft="#dimen/activity_horizontal_margin"
android:paddingRight="#dimen/activity_horizontal_margin"
android:paddingTop="#dimen/activity_vertical_margin"
tools:context="com.rayana.calculator.MainActivity" >
<TextView
android:id="#+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="#+id/button1"
android:layout_marginTop="39dp"
android:text="Result ="
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="#+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="#+id/button1"
android:layout_alignLeft="#+id/button1"
android:layout_marginBottom="31dp"
android:text="B =" />
<TextView
android:id="#+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="#+id/editText1"
android:layout_alignLeft="#+id/textView2"
android:text="A =" />
<EditText
android:id="#+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="#+id/editText2"
android:layout_alignLeft="#+id/editText2"
android:layout_marginBottom="45dp"
android:ems="10"
android:inputType="numberDecimal" />
<EditText
android:id="#+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="#+id/textView2"
android:layout_alignBottom="#+id/textView2"
android:layout_alignLeft="#+id/button2"
android:ems="10"
android:inputType="numberDecimal" />
<Button
android:id="#+id/button2"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="#+id/textView3"
android:layout_toRightOf="#+id/textView3"
android:text="-" />
<Button
android:id="#+id/button1"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="#+id/textView3"
android:layout_centerVertical="true"
android:layout_marginRight="16dp"
android:text="+" />
<Button
android:id="#+id/button3"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="#+id/textView2"
android:layout_marginLeft="16dp"
android:layout_toRightOf="#+id/button2"
android:text="x" />
<Button
android:id="#+id/button4"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="#+id/textView2"
android:layout_marginLeft="16dp"
android:layout_toRightOf="#+id/button3"
android:text="÷" />
<EditText
android:id="#+id/editText3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="#+id/textView3"
android:ems="10"
android:inputType="numberDecimal" />
</RelativeLayout>
And here is my Main.java:
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.os.Bundle;
public class MainActivity extends ActionBarActivity {
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button plus = (Button)findViewById(R.id.button1);
Button minus = (Button)findViewById(R.id.button2);
Button multiply = (Button)findViewById(R.id.button3);
Button devise = (Button)findViewById(R.id.button4);
final EditText editText1 = (EditText)findViewById(R.id.editText1);
final double A = Double.valueOf(editText1.getText().toString());
final EditText editText2 = (EditText)findViewById(R.id.editText2);
final double B = Double.valueOf(editText2.getText().toString());
final EditText editText3 = (EditText)findViewById(R.id.editText3);
plus.setOnClickListener(Operation1);
minus.setOnClickListener(Operation1);
multiply.setOnClickListener(Operation1);
devise.setOnClickListener(Operation1);
OnClickListener Operation1 = new OnClickListener() {
public void onClick(View v) {
switch(v.getId()){
case R.id.button1:
double result = A+B;
editText3.setText(String.valueOf(result));
break;
case R.id.button2:
double result2 = A-B;
editText3.setText(String.valueOf(result2));
break;
case R.id.button3:
double result3 = A*B;
editText3.setText(String.valueOf(result3));
break;
case R.id.button4:
double result4 = A/B;
editText3.setText(String.valueOf(result4));
break;
}
}
};
}
Write your blow code outside your onCreate() method.
public class MainActivity extends ActionBarActivity {
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button plus = (Button)findViewById(R.id.button1);
Button minus = (Button)findViewById(R.id.button2);
Button multiply = (Button)findViewById(R.id.button3);
Button devise = (Button)findViewById(R.id.button4);
final EditText editText1 = (EditText)findViewById(R.id.editText1);
final double A = Double.valueOf(editText1.getText().toString());
final EditText editText2 = (EditText)findViewById(R.id.editText2);
final double B = Double.valueOf(editText2.getText().toString());
final EditText editText3 = (EditText)findViewById(R.id.editText3);
plus.setOnClickListener(Operation1);
minus.setOnClickListener(Operation1);
multiply.setOnClickListener(Operation1);
devise.setOnClickListener(Operation1);
}
///Your click listener method:
OnClickListener Operation1 = new OnClickListener() {
public void onClick(View v) {
switch(v.getId()){
case R.id.button1:
double result = A+B;
editText3.setText(String.valueOf(result));
break;
case R.id.button2:
double result2 = A-B;
editText3.setText(String.valueOf(result2));
break;
case R.id.button3:
double result3 = A*B;
editText3.setText(String.valueOf(result3));
break;
case R.id.button4:
double result4 = A/B;
editText3.setText(String.valueOf(result4));
break;
}
}
};
}