- Forum-Beiträge: 12
25.10.2010, 21:36:38 via Website
25.10.2010 21:36:38 via Website
Ich bin noch sehr neu in der Android Programmierung, mache aber meiner Meinung nach gute Fortschritte in dem ich Stück für Stück durch bestehende Tutorials und Codebeispiele das ganze zu verstehen lerne. Ich habe aber leider auch keine Erfahrung in Java und das ganze wie Package, Methoden und Klassen ist für mich noch ziemlich neu in das ich mich versuche hereinzuarbeiten. Besonders mit dem Zugriff auf Klassen und Methoden und all dem 'private', 'public', 'static' Zeugs ist für mich noch sehr schwer zu verstehen. Ich habe jetzt die letzten 2 Stunden einiges dazu gelesen und dutzendfach alle Kombinationen an meinem Programm ausprobiert, jedoch leider ohne Erfolg.
Zum eigentlichen Problem. Ich habe gestern ein Programm geschrieben das soweit auch super funktioniert:
2
3import java.util.ArrayList;
4
5import android.app.Activity;
6import android.os.Bundle;
7import android.widget.TextView;
8
9public class startactivity extends Activity {
10 /** Called when the activity is first created. */
11
12 public class Customer {
13
14 private String name;
15 private String phoneNumber;
16
17 public Customer() {
18 }
19
20 public Customer(String name, String phoneNumber) {
21 this.name = name;
22 this.phoneNumber = phoneNumber;
23 }
24
25 public void setName(String name) {
26 this.name = name;
27 }
28
29 public String getName() {
30 return name;
31 }
32
33 public void setPhoneNumber(String phoneNumber) {
34 this.phoneNumber = phoneNumber;
35 }
36
37 public String getPhoneNumber() {
38 return phoneNumber;
39 }
40 }
41
42 @Override
43 public void onCreate(Bundle savedInstanceState) {
44 super.onCreate(savedInstanceState);
45 setContentView(R.layout.main);
46
47 ArrayList<Customer> customerListe = new ArrayList<Customer>(); // Liste nur für Auto-Objekte
48 Customer a1 = new Customer("Hans Müller", "111 222 33 44"); // Auto-Objekt erzeugen
49 Customer a2 = new Customer("Tamara Joschi", "222 333 44 55"); // Auto-Objekt erzeugen
50 Customer a3 = new Customer("Hans Ueli", "888 777 11 22"); // Auto-Objekt erzeugen
51
52 customerListe.add(a1);
53 customerListe.add(a2);
54 customerListe.add(a3);
55 customerListe.add(new Customer("Johannes Bachmann","222 333 44 22"));
56
57 TextView meintextfeld = (TextView) findViewById(R.id.textfeldoben);
58 meintextfeld.setText(customerListe.get(3).phoneNumber);
59 }
60}
Heute hab ich mir dann zum Ziel genommen dass ich diesen Code auf zwei Klassen verteilen möchte. Eine mit der ich die ArrayListe erstelle, eine in der ich sie dann brauche. Einer meiner Versuche lautet wie folgt:
customer.java:
2
3import java.util.ArrayList;
4
5
6
7public class customer {
8 /** Called when the activity is first created. */
9
10 public class Customer {
11
12 private String name;
13 private String phoneNumber;
14
15 public Customer() {
16 }
17
18 public Customer(String name, String phoneNumber) {
19 this.name = name;
20 this.phoneNumber = phoneNumber;
21 }
22
23 public void setName(String name) {
24 this.name = name;
25 }
26
27 public String getName() {
28 return name;
29 }
30
31 public void setPhoneNumber(String phoneNumber) {
32 this.phoneNumber = phoneNumber;
33 }
34
35 public String getPhoneNumber() {
36 return phoneNumber;
37 }
38 }
39
40 public void dothelist() {
41
42 ArrayList<Customer> customerListe = new ArrayList<Customer>(); // Liste nur für Auto-Objekte
43 Customer a1 = new Customer("Hans Müller", "111 222 33 44"); // Auto-Objekt erzeugen
44 Customer a2 = new Customer("Tamara Joschi", "222 333 44 55"); // Auto-Objekt erzeugen
45 Customer a3 = new Customer("Hans Ueli", "888 777 11 22"); // Auto-Objekt erzeugen
46
47 customerListe.add(a1);
48 customerListe.add(a2);
49 customerListe.add(a3);
50 customerListe.add(new Customer("Johannes Bachmann","222 333 44 22"));
51
52 }
53}
startactivity:
2
3import java.util.ArrayList;
4
5import pre.arraylist.two.customer.Customer;
6import pre.arraylist.two.customer.*;
7import android.app.Activity;
8import android.os.Bundle;
9import android.widget.TextView;
10
11public class startactivity extends Activity {
12 /** Called when the activity is first created. */
13
14 @Override
15 public void onCreate(Bundle savedInstanceState) {
16 super.onCreate(savedInstanceState);
17 setContentView(R.layout.main);
18
19
20
21 pre.arraylist.two.customer.dothelist();
22
23 TextView meintextfeld = (TextView) findViewById(R.id.textfeldoben);
24 meintextfeld.setText(customerListe.get(3).phoneNumber);
25 }
26}
Dies ist wenigstens noch eine Variante mit weniger Fehlermeldungen innerhalb Eclipse. Es sagt mir z.B. in Zeile 27. der startactivity.java ("Cannot make a static reference to the non-static method dothelist() from the type customer". Wenn ich dann aber in der customer.java in Zeile 40 ein "static" hinzufüge, erhält der Code darunter eine Fehlermeldung. Ich habe wirklich schon einiges rumprobiert und auch versucht zu verstehen, leider ohne Erfolg.
Vielleicht kann mir jemand bei dem Problem helfen. Wenn ich eine Lösung habe verstehe ich das Problem vielleicht auch besser.
Danke und Gruss
Ralf
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.