Java Android Studio'da hesap makinesi yapımı

caner_exe

Decapat
Katılım
28 Nisan 2022
Mesajlar
864
Makaleler
1
Çözümler
7
Yer
Ankara
Daha fazla  
Cinsiyet
Erkek
Meslek
Bilgisayar programcısı
R.id.sonuc_text) kısmı sürekli kırmızı yanıyor, anlamadım .Kütüpane kullanarak yapıyorum fakat kütüpahaneyi görmüyor mu yoksa kodumda mı sorun var anlamıyorum,android studyoda java ile yazıyorum.

Kod:
package com.canerorak.HesapMakinem;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {
    EditText editText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        editText = findViewById(R.id.sonuc_text); /*(R.id.sonuc_text) kısmı sürekli kırmızı yanıyor anlamadım*/
        editText.setShowSoftInputOnFocus(false);
    }

    public void Yazdir(View view) {
        switch (view.getId()) {
            case R.id.button_temizle:editText.setText("");
                break;
            case R.id.button_dot:EkranYazdir(".");
                break;
            case R.id.button_0:EkranYazdir("0");
                break;
            case R.id.button_1:EkranYazdir("1");
                break;
            case R.id.button_2:EkranYazdir("2");
                break;
            case R.id.button_3:EkranYazdir("3");
                break;
            case R.id.button_4:EkranYazdir("4");
                break;
            case R.id.button_5:EkranYazdir("5");
                break;
            case R.id.button_6:EkranYazdir("6");
                break;
            case R.id.button_7:EkranYazdir("7");
                break;
            case R.id.button_8:EkranYazdir("8");
                break;
            case R.id.button_9:EkranYazdir("9");
                break;
            case R.id.button_divide:EkranYazdir("/");
                break;
            case R.id.button_plus:EkranYazdir("+");
                break;
            case R.id.button_minus:EkranYazdir("-");
                break;
            case R.id.button_sil:Sil();
                break;
            case R.id.button_equal:Sonuc();
                break;
        }
    }

    private void Sil() {
        int cursorPos = editText.getSelectionStart();
        if (cursorPos > 0) {
            String eskiDeger = editText.getText().toString();
            String solTaraf = eskiDeger.substring(0, cursorPos - 1);
            String sagTaraf = eskiDeger.substring(cursorPos);
            String yeniDeger = solTaraf + sagTaraf;
            editText.setText(yeniDeger);
            editText.setSelection(cursorPos - 1);
        }
    }

    private void Sonuc() {
        String yazı = editText.getText().toString();
        try {
            double sonuc = hesapla(yazı);
            editText.setText(String.valueOf(sonuc));
            editText.setSelection(editText.getText().length());
        } catch (Exception e) {
            editText.setText("Hatalı İfade");
        }
    }

    private void EkranYazdir(String deger) {
        int cursorPos = editText.getSelectionStart();
        String eskiDeger = editText.getText().toString();
        String solTaraf = eskiDeger.substring(0, cursorPos);
        String sagTaraf = eskiDeger.substring(cursorPos);
        String yeniDeger = solTaraf + deger + sagTaraf;
        editText.setText(yeniDeger);
        editText.setSelection(cursorPos + 1);
    }
}
 
Java kullanma sebebinizi sorabilir miyim? Kotlin daha güncel bir dil Kotlin kullansanız daha iyi olur.

İnternetteki kaynaklar eşliğinde yazıyorum, normalde C#'ta yazıyorum fakat bu projeyi yapan çoğunluk Java kullandığı için Java ile yazdım.
 

Yeni konular

Geri
Yukarı