Prosty program obliczeniowy zawierający jedno okienko do wprowadzenia liczby całkowitej, wypisujący jej kwadrat na urządzeniu z systemem Android.


Tworzymy czysty projekt w programie Android Studio, w części „wizualnej” wstawiamy myszką 3 elementy:

  1. (niekonieczne) pole textView, we właściwościach obiektu w polu text piszemy Podaj a
  2. pole editText, do wprowadzenia danych
  3. przycisk OK do uruchomienia kalkulatora

Są dwie metody uaktywnienia buttona, poniżej przedstawiam wersję z edycją właściwości OnClick tego przycisku, wpisujemy w to pole naszą funkcję clicFunc .

Następnie przechodzimy do sekcji java -> domena -> MainActivity

Poniżej podaję cały kod, ale wstawione są tylko te wersy, które są pomiędzy znacznikami
//FX:
tu dodane linie
//^

Jedna część wyremowana to alternatywna wersja w przypadku gdybyśmy NIE wpisali clicFunc do pola onClick dla przycisku.

Toast tworzy komunikat wynikowy. Try catch jest konieczne, ponieważ jeśli użytkownik wpisze coś innego niż liczbę int, a w programie nie będzie try wówczas aplikacja się wyłączy.

Ważne! R.id.editText to identyfikator obiektu z pliku manifestu (ostatnia część nazwy jest nadana przez użytkownika)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package com.fulara.hellojava;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.Toast;
import android.view.View.OnClickListener;
import android.view.View;

import android.widget.EditText;


public class MainActivity extends ActionBarActivity {

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


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
//FX:  R.id.button to id z pliku XML: jest to wersja alternatywna, gdybyśmy nie pisali clicFunc:
/*        Button button = (Button) findViewById(R.id.button);

                button.setOnClickListener(new OnClickListener() {
                           @Override
                       public void onClick(View view) {
                                Toast.makeText(MainActivity.this, "Button Clicked", Toast.LENGTH_SHORT).show();
                            }

                                });
*/

////////////////^
        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();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

    //FX:
    //2 sposób z przymusowym dodaniem w Visualu w OnClick nazwy funkcji "clicFunc"
    public void clickFunc(View view){
                EditText dana = (EditText) findViewById(R.id.editText);
               try { //jeśli nie zrobimy try w przypadku podania tekstu zamiast liczby program się wykrzaczy.
                   int liczba = Integer.parseInt(dana.getText().toString());
                   int wynik = liczba * liczba;
                   Toast.makeText(MainActivity.this, "Wpisałeś:" + dana.getText() + "; kwadrat to: " + wynik, Toast.LENGTH_SHORT).show();
               }
               catch (Exception e)
               {
                   Toast.makeText(MainActivity.this, "Nie podałeś liczby! Popraw wpis!!!", Toast.LENGTH_SHORT).show();
               }

            }

    //^

}