Android ile Hesap Makinesi
Görüldüğü şekilde sayfa tasarımımızı yapıyoruz.
sayi isimli alanımız girdiğimiz sayıları almak ve işlemlerin sonucunu göstermek için kullanılmaktadır. gecici isimli alanımız ise girilen sayıları ve işlemleri adı üstünde geçici olarak tutması için kullanılmaktadır.
(Programda önemli olan, parantez kullanmadan, işlem önceliğine göre işlem sırasını programın kendisi belirlemektedir.)
(Programda önemli olan, parantez kullanmadan, işlem önceliğine göre işlem sırasını programın kendisi belirlemektedir.)
MainActivity.java
package com.example.hesap_makinesi;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import java.lang.Double;
public class MainActivity extends Activity implements View.OnClickListener{
Button rakam0, rakam1, rakam2, rakam3, rakam4, rakam5, rakam6, rakam7, rakam8, rakam9;
Button topla, cikar, carp, bol, esit, temizle, nokta;
TextView sayi, gecici;
ArrayList<String> sayilar = new ArrayList<String>();
ArrayList<String> sayilar1 = new ArrayList<String>();
int boyut;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
rakam0 = (Button)findViewById(R.id.sifir);
rakam1 = (Button)findViewById(R.id.bir);
rakam2 = (Button)findViewById(R.id.iki);
rakam3 = (Button)findViewById(R.id.uc);
rakam4 = (Button)findViewById(R.id.dort);
rakam5 = (Button)findViewById(R.id.bes);
rakam6 = (Button)findViewById(R.id.alti);
rakam7 = (Button)findViewById(R.id.yedi);
rakam8 = (Button)findViewById(R.id.sekiz);
rakam9 = (Button)findViewById(R.id.dokuz);
topla = (Button)findViewById(R.id.topla);
cikar = (Button)findViewById(R.id.cikar);
carp = (Button)findViewById(R.id.carp);
bol = (Button)findViewById(R.id.bol);
esit = (Button)findViewById(R.id.esit);
temizle = (Button)findViewById(R.id.clear);
nokta = (Button)findViewById(R.id.nokta);
sayi=(TextView)findViewById(R.id.sayi);
gecici=(TextView)findViewById(R.id.gecici);
rakam0.setOnClickListener(this);
rakam1.setOnClickListener(this);
rakam2.setOnClickListener(this);
rakam3.setOnClickListener(this);
rakam4.setOnClickListener(this);
rakam5.setOnClickListener(this);
rakam6.setOnClickListener(this);
rakam7.setOnClickListener(this);
rakam8.setOnClickListener(this);
rakam9.setOnClickListener(this);
topla.setOnClickListener(this);
cikar.setOnClickListener(this);
carp.setOnClickListener(this);
bol.setOnClickListener(this);
esit.setOnClickListener(this);
temizle.setOnClickListener(this);
nokta.setOnClickListener(this);
}
public void onClick(View v) {
switch (v.getId()){
case R.id.sifir:
sayi.setText(sayi.getText() +"0");
break;
case R.id.bir:
sayi.setText(sayi.getText() + "1");
break;
case R.id.iki:
sayi.setText(sayi.getText() + "2");
break;
case R.id.uc:
sayi.setText(sayi.getText() + "3");
break;
case R.id.dort:
sayi.setText(sayi.getText() + "4");
break;
case R.id.bes:
sayi.setText(sayi.getText() + "5");
break;
case R.id.alti:
sayi.setText(sayi.getText() + "6");
break;
case R.id.yedi:
sayi.setText(sayi.getText() + "7");
break;
case R.id.sekiz:
sayi.setText(sayi.getText() + "8");
break;
case R.id.dokuz:
sayi.setText(sayi.getText() + "9");
break;
case R.id.nokta:
sayi.setText(sayi.getText() + ".");
break;
case R.id.clear:
sayi.setText("");
gecici.setText("");
sayilar1.clear();
sayilar.clear();
break;
case R.id.bol:
atama("/");
break;
case R.id.carp:
atama("*");
break;
case R.id.topla:
atama("+");
break;
case R.id.cikar:
atama("-");
break;
case R.id.esit:
atama("=");
sayilariAl();
sayilar1.clear();
sayilar.clear();
break;
}}
public void sayilariAl(){
boyut = sayilar.size();
//////////////////////////kontrol//////////////////
if(sayilar.get(0)=="."){
sayilar.set(1, ("0." + sayilar.get(1)));
sayilar.set(0, "");
}
boslukkirp();////////////sayilar1aktif////////////
//////////////////carpmaislemi////////////////////
boyut = sayilar1.size();
for(int i=0; i<boyut; i++){
if(sayilar1.get(i)=="*" ){
if(sayilar1.get(i+1)!=" "){
sayilar1.set(i+1,(Double.toString(Double.parseDouble(sayilar1.get(i-1))*Double.parseDouble(sayilar1.get(i+1)))));
sayilar1.set(i-1,"");
sayilar1.set(i, " ");
}}}
boslukkirp2();//////////sayilaraktif//////////////
//////////////////bolmeislemi/////////////////////
boyut = sayilar.size();
for(int i=0; i<boyut; i++){
if(sayilar.get(i)=="/"){
if(sayilar.get(i+1)!=" "){
sayilar.set(i+1,(Double.toString(Double.parseDouble(sayilar.get(i-1))/Double.parseDouble(sayilar.get(i+1)))));
sayilar.set(i-1,"");
sayilar.set(i, " ");
}}}
boslukkirp();////////////////sayilar1aktif//////////////
/////////////////////cikarmaişlemi//////////////////////
boyut = sayilar1.size();
for(int i=0; i<boyut; i++){
if(sayilar1.get(i)==("-")){
if(sayilar1.get(i+1)!=" "){
sayilar1.set(i+1,(Double.toString(Double.parseDouble(sayilar1.get(i-1))-Double.parseDouble(sayilar1.get(i+1)))));
sayilar1.set(i-1," ");
sayilar1.set(i, " ");
}}}
boslukkirp2();//////////////////////////sayilaraktif//////////////
///////////////////////////////////toplama////////////////////////
boyut = sayilar.size();
for(int i=0; i<boyut; i++){
if(sayilar.get(i)=="+" ){
if(sayilar.get(i+1)!=" "){
sayilar.set(i+1, (Double.toString(Double.parseDouble(sayilar.get(i-1))+Double.parseDouble(sayilar.get(i+1)))));
sayilar.set(i-1," ");
sayilar.set(i, " ");
}}}
boslukkirp();/////////////////////////sayilar1aktif//////////////
boyut = sayilar1.size();
for(int i=0; i<boyut-1;i++){
sayi.setText(sayi.getText()+ sayilar1.get(i));
gecici.setText("");
}}
public void boslukkirp(){
for(int i=0; i<boyut; i++){
if(sayilar.get(i)!=""){
sayilar1.add(sayilar.get(i));
}}
sayilar.clear();
}
public void boslukkirp2(){
for(int i=0; i<boyut; i++){
if(sayilar1.get(i)!=""){
sayilar.add(sayilar1.get(i));
}}
sayilar1.clear();
}
public void atama(String islem){
if(sayi.getText() != ""){
sayilar.add(sayi.getText().toString());
sayilar.add(islem);
gecici.setText(gecici.getText().toString() + sayi.getText().toString() + islem);
sayi.setText("");
}
//KONTROL... İlk girilen karakter + veya - olabilir. Programın hata vermemesi için:
else if(islem=="+" || islem=="-")
{
sayilar.add("0");
sayilar.add(islem);
gecici.setText(gecici.getText().toString() +
sayi.getText().toString() + islem);
sayi.setText("");
}
//KONTROL... İlk girilen karakter / veya * olabilir. Programın hata vermemesi için:
else if(islem=="/" || islem=="*"){
Toast.makeText(getApplicationContext(), "Gecerli degerler giriniz!", Toast.LENGTH_LONG).show();
gecici.setText("");
sayi.setText("");
sayilar.clear();
}
else
{
Toast.makeText(getApplicationContext(), "Gecerli degerler giriniz!", Toast.LENGTH_LONG).show();
}}}
package com.example.hesap_makinesi;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import java.lang.Double;
public class MainActivity extends Activity implements View.OnClickListener{
Button rakam0, rakam1, rakam2, rakam3, rakam4, rakam5, rakam6, rakam7, rakam8, rakam9;
Button topla, cikar, carp, bol, esit, temizle, nokta;
TextView sayi, gecici;
ArrayList<String> sayilar = new ArrayList<String>();
ArrayList<String> sayilar1 = new ArrayList<String>();
int boyut;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
rakam0 = (Button)findViewById(R.id.sifir);
rakam1 = (Button)findViewById(R.id.bir);
rakam2 = (Button)findViewById(R.id.iki);
rakam3 = (Button)findViewById(R.id.uc);
rakam4 = (Button)findViewById(R.id.dort);
rakam5 = (Button)findViewById(R.id.bes);
rakam6 = (Button)findViewById(R.id.alti);
rakam7 = (Button)findViewById(R.id.yedi);
rakam8 = (Button)findViewById(R.id.sekiz);
rakam9 = (Button)findViewById(R.id.dokuz);
topla = (Button)findViewById(R.id.topla);
cikar = (Button)findViewById(R.id.cikar);
carp = (Button)findViewById(R.id.carp);
bol = (Button)findViewById(R.id.bol);
esit = (Button)findViewById(R.id.esit);
temizle = (Button)findViewById(R.id.clear);
nokta = (Button)findViewById(R.id.nokta);
sayi=(TextView)findViewById(R.id.sayi);
gecici=(TextView)findViewById(R.id.gecici);
rakam0.setOnClickListener(this);
rakam1.setOnClickListener(this);
rakam2.setOnClickListener(this);
rakam3.setOnClickListener(this);
rakam4.setOnClickListener(this);
rakam5.setOnClickListener(this);
rakam6.setOnClickListener(this);
rakam7.setOnClickListener(this);
rakam8.setOnClickListener(this);
rakam9.setOnClickListener(this);
topla.setOnClickListener(this);
cikar.setOnClickListener(this);
carp.setOnClickListener(this);
bol.setOnClickListener(this);
esit.setOnClickListener(this);
temizle.setOnClickListener(this);
nokta.setOnClickListener(this);
}
public void onClick(View v) {
switch (v.getId()){
case R.id.sifir:
sayi.setText(sayi.getText() +"0");
break;
case R.id.bir:
sayi.setText(sayi.getText() + "1");
break;
case R.id.iki:
sayi.setText(sayi.getText() + "2");
break;
case R.id.uc:
sayi.setText(sayi.getText() + "3");
break;
case R.id.dort:
sayi.setText(sayi.getText() + "4");
break;
case R.id.bes:
sayi.setText(sayi.getText() + "5");
break;
case R.id.alti:
sayi.setText(sayi.getText() + "6");
break;
case R.id.yedi:
sayi.setText(sayi.getText() + "7");
break;
case R.id.sekiz:
sayi.setText(sayi.getText() + "8");
break;
case R.id.dokuz:
sayi.setText(sayi.getText() + "9");
break;
case R.id.nokta:
sayi.setText(sayi.getText() + ".");
break;
case R.id.clear:
sayi.setText("");
gecici.setText("");
sayilar1.clear();
sayilar.clear();
break;
case R.id.bol:
atama("/");
break;
case R.id.carp:
atama("*");
break;
case R.id.topla:
atama("+");
break;
case R.id.cikar:
atama("-");
break;
case R.id.esit:
atama("=");
sayilariAl();
sayilar1.clear();
sayilar.clear();
break;
}}
public void sayilariAl(){
boyut = sayilar.size();
//////////////////////////kontrol//////////////////
if(sayilar.get(0)=="."){
sayilar.set(1, ("0." + sayilar.get(1)));
sayilar.set(0, "");
}
boslukkirp();////////////sayilar1aktif////////////
//////////////////carpmaislemi////////////////////
boyut = sayilar1.size();
for(int i=0; i<boyut; i++){
if(sayilar1.get(i)=="*" ){
if(sayilar1.get(i+1)!=" "){
sayilar1.set(i+1,(Double.toString(Double.parseDouble(sayilar1.get(i-1))*Double.parseDouble(sayilar1.get(i+1)))));
sayilar1.set(i-1,"");
sayilar1.set(i, " ");
}}}
boslukkirp2();//////////sayilaraktif//////////////
//////////////////bolmeislemi/////////////////////
boyut = sayilar.size();
for(int i=0; i<boyut; i++){
if(sayilar.get(i)=="/"){
if(sayilar.get(i+1)!=" "){
sayilar.set(i+1,(Double.toString(Double.parseDouble(sayilar.get(i-1))/Double.parseDouble(sayilar.get(i+1)))));
sayilar.set(i-1,"");
sayilar.set(i, " ");
}}}
boslukkirp();////////////////sayilar1aktif//////////////
/////////////////////cikarmaişlemi//////////////////////
boyut = sayilar1.size();
for(int i=0; i<boyut; i++){
if(sayilar1.get(i)==("-")){
if(sayilar1.get(i+1)!=" "){
sayilar1.set(i+1,(Double.toString(Double.parseDouble(sayilar1.get(i-1))-Double.parseDouble(sayilar1.get(i+1)))));
sayilar1.set(i-1," ");
sayilar1.set(i, " ");
}}}
boslukkirp2();//////////////////////////sayilaraktif//////////////
///////////////////////////////////toplama////////////////////////
boyut = sayilar.size();
for(int i=0; i<boyut; i++){
if(sayilar.get(i)=="+" ){
if(sayilar.get(i+1)!=" "){
sayilar.set(i+1, (Double.toString(Double.parseDouble(sayilar.get(i-1))+Double.parseDouble(sayilar.get(i+1)))));
sayilar.set(i-1," ");
sayilar.set(i, " ");
}}}
boslukkirp();/////////////////////////sayilar1aktif//////////////
boyut = sayilar1.size();
for(int i=0; i<boyut-1;i++){
sayi.setText(sayi.getText()+ sayilar1.get(i));
gecici.setText("");
}}
public void boslukkirp(){
for(int i=0; i<boyut; i++){
if(sayilar.get(i)!=""){
sayilar1.add(sayilar.get(i));
}}
sayilar.clear();
}
public void boslukkirp2(){
for(int i=0; i<boyut; i++){
if(sayilar1.get(i)!=""){
sayilar.add(sayilar1.get(i));
}}
sayilar1.clear();
}
public void atama(String islem){
if(sayi.getText() != ""){
sayilar.add(sayi.getText().toString());
sayilar.add(islem);
gecici.setText(gecici.getText().toString() + sayi.getText().toString() + islem);
sayi.setText("");
}
//KONTROL... İlk girilen karakter + veya - olabilir. Programın hata vermemesi için:
else if(islem=="+" || islem=="-")
{
sayilar.add("0");
sayilar.add(islem);
gecici.setText(gecici.getText().toString() +
sayi.getText().toString() + islem);
sayi.setText("");
}
//KONTROL... İlk girilen karakter / veya * olabilir. Programın hata vermemesi için:
else if(islem=="/" || islem=="*"){
Toast.makeText(getApplicationContext(), "Gecerli degerler giriniz!", Toast.LENGTH_LONG).show();
gecici.setText("");
sayi.setText("");
sayilar.clear();
}
else
{
Toast.makeText(getApplicationContext(), "Gecerli degerler giriniz!", Toast.LENGTH_LONG).show();
}}}
Hiç yorum yok: