Program nie działa tak jak powinien.

0

Witam,
mam napisać kalkulator, robiłem go w programie eclipse według tego tutoriala

do robienia switcha wszystko chodziło jak powinno jednak potem przestało, program nie wykonuje działań, tak jakby nie czytał switcha. Proszę o pomoc.

 package com.example.kalk2;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
TextView Disp; 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Disp=(TextView)findViewById(R.id.textView1);
        Disp.setText("0");
    }

    @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);
    }
    static boolean isempty=true;
    public void num_Clicked(View sender)
    {
    Button bt=(Button)sender;
    if(Disp.getText().length()>9)return;
    if(isempty)
    {
        if(bt.getText().toString().equals("0"))return;
        Disp.setText(bt.getText()); 
        isempty=false;
    }
    else{
        Disp.append(bt.getText());  
    }
    }
    static int ac=0;
    static short op=0;
    public void op_Clicked(View sender) 
    {
        Button bt=(Button)sender;
        switch (op)
        {
        case 0: 
        ac+=Integer.parseInt(Disp.getText().toString());
        break;
        case 1: 
            ac-=Integer.parseInt(Disp.getText().toString());
            break;
        case 2: 
            ac+=Integer.parseInt(Disp.getText().toString());
            break;
        case 3: 
            ac+=Integer.parseInt(Disp.getText().toString());
            break;
            }
        Disp.setText(Integer.toString(ac));
        if(bt.getText().toString().equals("+")) op=0;
        if(bt.getText().toString().equals("-")) op=1;
        if(bt.getText().toString().equals("*")) op=2;
        if(bt.getText().toString().equals("/")) op=3;
        isempty=true;
        }

} 
0

Po pierwsze sformatuj ten kod (w eclipsie chyba bylo to ctrl + shift + f) i zacznij używać debugera pomaga w takich sytuacjach

0

Nadal nic.... ktoś coś ?

0

Nie znam się na Javie dobrze, ale jakie są wyniki? Co się dzieje po kliknięciu?

0

Program uruchamia się na telefonie, nie wykonują się żadne zadania, po prostu te guziki które wciskam pojawiają się w oknie wynikowym, np 3+3 a nie 6

1

debuguj. postaw se breakpointy i debuguj

0

Wydaję mi się ze wartość op nigdy się nie zmienia.

0

Jak to poprawić ?

0

Poprawiłem, teraz mam następujący problem,a właściwie to 2:

  1. Zero działa prawidłowo tylko przy wpisywaniu liczb, tzn przy wpisaniu np liczby 1005, natomiast wykonując jakieś działania na zerze np: 5+0 daje 10, z innymi jest podobnie.
  2. Jak wprowadzić ułamki ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0