Hi,
ich hab mehrere Projekte, die fertig sind und (u.a.) solche Dinge tun können..
Ich finde es nur trotzdem irgendwie nicht richtig, hier die Codes fertig reinzustellen..
Wo genau hapert es denn?
Lg Ansgar
P.S. Ich glaub ich mach mal ein einfaches Programm, und poste das dann doch..
EDIT:Fertig.. Scheint auch zu laufen..
Ich weiß nicht, wie viel du schon weißt, habs also etwas ausführlicher und möglichst ohne Fachsprache geschrieben...
Wenn ihr Fehler entdeckt..-> Schreiben, ich lerne selbst noch
Was ist soll die App können?Sie soll aus einer Zahl auf Knopfdruck die Wurzel ziehen und das Ergebnis auf 2 Nachkommastellen runden.
Mein Code der Activity:
1package am.dev.hellomaths;
2
3import android.app.Activity;
4import android.os.Bundle;
5import android.view.View;
6import android.view.View.OnClickListener;
7import android.widget.Button;
8import android.widget.EditText;
9import android.widget.TextView;
10
11public class HelloMathsActivity extends Activity
12 implements OnClickListener{
13 /** Called when the activity is first created. */
14
15 //Variablen für unseren Butten, EditText und TextView
16
17 private Button ButtonRECHNE;
18 private EditText EditTextZAHL;
19 private TextView TextViewERGEBNIS;
20
21
22 @Override
23 public void onCreate(Bundle savedInstanceState) {
24 super.onCreate(savedInstanceState);
25 setContentView(R.layout.main);
26
27 //jetzt muss die App wissen, wer was ist
28 ButtonRECHNE = (Button) findViewById(R.id.ButtonRECHNE);
29 EditTextZAHL = (EditText) findViewById(R.id.EditTextZAHL);
30 TextViewERGEBNIS = (TextView) findViewById(R.id.TextViewERGEBNIS);
31
32 //Dem OnClickListener muss gesagt werden, dass er auf den Button achten soll
33 ButtonRECHNE.setOnClickListener(this);
34
35 }
36
37 //OnClick: Wird aufgerufen, wenn geklickt wird..
38 @Override
39 public void onClick(View v) {
40 //(braucht man eigentlich nur bei mehreren Buttons)
41 //Zwischen den Buttons unterscheiden:
42 //v = View, auf die geklickt wurde, wird uns mitgegeben..
43
44 if(v == ButtonRECHNE){
45 //Hier wird das getan, was getan werden soll..
46
47 //Eine Variable für den Inhalt aus dem EditText-Feld
48 double zahl;
49
50 //Double Variablen enthalten Gleitkomma-Zahlen, Beispiel: 13.005
51 //Während Strings Zeichenketten, also Text enthalten..
52
53 //Diese erhält den Wert des Feldes als Zahl..
54 zahl = Float.valueOf(EditTextZAHL.getText().toString());
55
56 //Jetzt ändern wir die Zahl in die Wurzel von Zahl:
57 zahl = Math.sqrt(zahl);
58
59 //Jetzt runden wir auf 2 Nachkommastellen:
60 //Mit der Funktion Math.round(double) können wir eine Zahl auf eine ganze Zahl runden
61 //Also müssen wir erst mal 100 und danach durch 100 teilen. (für 2 Nachk.stellen)
62
63 zahl = (double)Math.round(zahl*100)/100;
64
65 //warum das double? Bei round ist das Ergebnis eine Integer Variable, eine ganze Zahl, die
66 // zwar durch 100 gerechnet werden kann, aber dann sofort ihre Nachkommastellen vergisst..
67
68 //Jetzt muss die Zahl nur noch ausgegeben werden..
69 TextViewERGEBNIS.setText("Ergebnis: " + zahl);
70
71 }
72 }
73}
Und der, der Main.xml
1<?xml version="1.0" encoding="utf-8"?>
2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:orientation="vertical"
4 android:layout_width="fill_parent"
5 android:layout_height="fill_parent">
6
7##Hier geben wir später unseren Text ein##
8<EditText
9 android:hint="Gebe eine Zahl ein"
10 android:id="@+id/EditTextZAHL"
11 android:layout_width="fill_parent"
12 android:layout_height="wrap_content"
13 android:numeric="decimal">
14 ##dieses decimal macht es uns einfach, weil es nur Zahlen erlaubt##
15
16</EditText>
17
18##Hier wird später draufgeklickt##
19<Button
20 android:text="Rechne die Wurzel und runde.."
21 android:id="@+id/ButtonRECHNE"
22 android:layout_width="fill_parent"
23 android:layout_height="wrap_content">
24</Button>
25
26##Hier wird das Ergebnis "reingeschrieben"##
27<TextView
28 android:text="Ergebnis"
29 android:id="@+id/TextViewERGEBNIS"
30 android:layout_width="fill_parent"
31 android:layout_height="wrap_content">
32</TextView>
33
34</LinearLayout>
Achja, eine Anmerkung noch: Ich hab schon gehört, das man für den Klick auf z.B. einen Button
direkt eine Methode in der *.xml Layoutdatei definieren kann, nur wusste ich net, ab welcher Version Android das kann (und war zu faul zum Nachschlagen
)...
Im Link steht was über die beiden.. Ab Android 1.6 ist das möglich...Und noch die APK, zum Download..Huch? Wie sind da die Permissions für die SD und das Telefon reingekommen? Kann mir das jemand erklären?
— geändert am 28.12.2010, 14:13:45
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.