Android de Hesap Makinesi Yapmak
Merhaba arkadaşlar bugün Eclipse kullanarak basit bir android hesap makinesi programı yapımını göstereceğim. İlk olarak Proje ismini yazıp uygulamamızı oluşturuyoruz.
Oluşturduktan sonra Hello World yazısıyla beraber ekranımız gelecek. Hello World yazısını silelim. Text Fields alanından iki adet number ekleyelim. Altınada 4 adet buton ekleyip isimlerini + – * / olarak değiştirelim.
Tasarıma çok önem vermedim siz istediğiniz gibi düzenlersiniz buton yerine imagebutton koyup daha şık görüntüde yapabilirsiniz. Neyse işimize dönelim. Butonların isminede topla, cikar, carp, bol olarak değiştirdim. Türkçe karakter kullanmamaya özen gösterin. activity_main ile işimiz bitti şimdide MainActivity dosyasına tıklıyoruz orda düzenlemeler yapacağız.
Resimdeki gibi EditText ve Button larımızı tanıtıyoruz. Şimdide buttonlara tıkladığımızda hangi işlemi yapacağını yazacağız. İlk olarak alt alta aşağıdaki kodları yazıyoruz.
[sourcecode]topla.setOnClickListener(this);
cikar.setOnClickListener(this);
carp.setOnClickListener(this);
bol.setOnClickListener(this);[/sourcecode]
setOnClickListener altında kırmızı çizgiler çıktı üzerine gelince açılan pencerede seçenekler var ordan en alttaki let ‘MainActivity’ implement ‘OnClickListener’ seçeneğine tıklıyoruz. Sonra üstte public class MainActivity yazan yerde MainActivity nin üzerine tıklayıp Add unimplemented methods seçeneğine tıklıyoruz. Kodlarımızın en altına
[sourcecode]@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}[/sourcecode]
şeklinde bir method eklendi. Şimdi burada switch case yapısıyla tuşlara tıklandığında yapılacak işlemleri yazıyoruz. Ekleyeceğimiz switch case in yapısı bu şekildedir:
[sourcecode]switch (v.getId()) {
case R.id.topla:
break;
case R.id.cikar:
break;
case R.id.carp:
break;
case R.id.bol:
break;
}[/sourcecode]
EditText lerden gelen verileri float a çevirip bir değişkene atıyoruz bunun için kullanacağınız kodlarda:
[sourcecode]String num1 = editText1.getText().toString();
int number1 = Integer.parseInt(num1);
String num2 = editText2.getText().toString();
int number2 = Integer.parseInt(num2);[/sourcecode]
Butonlara tıklandığında sonucu ekrana mesaj kutusu şeklinde yazdıracağız onun içinde aşağıdaki kodu kullanmamız gerekiyor:
[sourcecode]Toast.makeText(MainActivity.this, "Mesaj", MesajSüresi).show();[/sourcecode]
Methodumuzun son halide bu şekildedir:
[sourcecode]@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String num1 = editText1.getText().toString();
float number1 = Integer.parseInt(num1);
String num2 = editText2.getText().toString();
float number2 = Integer.parseInt(num2);
switch (v.getId()) {
case R.id.topla:
Toast.makeText(MainActivity.this, "Toplam: " + (number1+number2), 1500).show();
break;
case R.id.cikar:
Toast.makeText(MainActivity.this, "Fark: " + (number1-number2), 1500).show();
break;
case R.id.carp:
Toast.makeText(MainActivity.this, "Çarpım: " + (number1*number2), 1500).show();
break;
case R.id.bol:
Toast.makeText(MainActivity.this, "Bölüm: " + (number1/number2), 1500).show();
break;
}[/sourcecode]
Programın ekran görüntüsü:
Programın tüm kodları:
MainActivity.java kodları:
[sourcecode]package com.ea.calculator;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends ActionBarActivity implements OnClickListener {
EditText editText1, editText2;
Button topla, cikar, carp, bol;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText1 = (EditText) findViewById(R.id.editText1);
editText2 = (EditText) findViewById(R.id.editText2);
topla = (Button) findViewById(R.id.topla);
cikar = (Button) findViewById(R.id.cikar);
carp = (Button) findViewById(R.id.carp);
bol = (Button) findViewById(R.id.bol);
topla.setOnClickListener(this);
cikar.setOnClickListener(this);
carp.setOnClickListener(this);
bol.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String num1 = editText1.getText().toString();
float number1 = Integer.parseInt(num1);
String num2 = editText2.getText().toString();
float number2 = Integer.parseInt(num2);
switch (v.getId()) {
case R.id.topla:
Toast.makeText(MainActivity.this, "Toplam: " + (number1+number2), 1500).show();
break;
case R.id.cikar:
Toast.makeText(MainActivity.this, "Fark: " + (number1-number2), 1500).show();
break;
case R.id.carp:
Toast.makeText(MainActivity.this, "Çarpım: " + (number1*number2), 1500).show();
break;
case R.id.bol:
Toast.makeText(MainActivity.this, "Bölüm: " + (number1/number2), 1500).show();
break;
}
}
}[/sourcecode]
activity_main.xml kodları:
[sourcecode]<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.ea.calculator.MainActivity" >
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="18dp"
android:ems="10"
android:inputType="number" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editText1"
android:layout_centerHorizontal="true"
android:ems="10"
android:inputType="number" />
<Button
android:id="@+id/bol"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/carp"
android:layout_alignBottom="@+id/carp"
android:layout_alignParentRight="true"
android:layout_marginRight="14dp"
android:text="/" />
<Button
android:id="@+id/carp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/cikar"
android:layout_alignBottom="@+id/cikar"
android:layout_toLeftOf="@+id/bol"
android:text="X" />
<Button
android:id="@+id/cikar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/topla"
android:layout_alignBottom="@+id/topla"
android:layout_toLeftOf="@+id/carp"
android:text="-" />
<Button
android:id="@+id/topla"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editText2"
android:layout_toLeftOf="@+id/cikar"
android:text="+" />
</RelativeLayout>
[/sourcecode]
merhaba bunun kayıt dosyası mecutmu acaba resimler silinmiş ve gözükmüyorda.