Hallo zusammen,
ich beschäftige mich gerade mit Android und hab mir ein kleines Tool zusammengebaut. Das funktioniert auch soweit alles wie es soll, aber da ich nicht so der Java-Freak bin und es mit Klasen und Objekten habe wird mein Code mehr und mehr Spaghetti-artig.
Kann mir jemand sagen, wie man sowas vernünftig zerlegt?
Das Problem was ich habe ist, daß ich oben im Code Variablen definiere und auf diese zugreife und dann unten weiter in buttonSenden.OnClickListener() nochmal drauf zugreifen will, dort aber alles noch einmal holen muss. Dort ist es leider sonst unbekannt. Es funktioniert so, ist aber ziemlich unelegant denk ich.
Kann mir einer verraten, wie ich das vernünftig zerlege, so das ich mal objektorientiert programmiere und nicht mit diesem Spaghetti-Code?
Danke.
Aquarium1974
ich beschäftige mich gerade mit Android und hab mir ein kleines Tool zusammengebaut. Das funktioniert auch soweit alles wie es soll, aber da ich nicht so der Java-Freak bin und es mit Klasen und Objekten habe wird mein Code mehr und mehr Spaghetti-artig.
Kann mir jemand sagen, wie man sowas vernünftig zerlegt?
Das Problem was ich habe ist, daß ich oben im Code Variablen definiere und auf diese zugreife und dann unten weiter in buttonSenden.OnClickListener() nochmal drauf zugreifen will, dort aber alles noch einmal holen muss. Dort ist es leider sonst unbekannt. Es funktioniert so, ist aber ziemlich unelegant denk ich.
Kann mir einer verraten, wie ich das vernünftig zerlege, so das ich mal objektorientiert programmiere und nicht mit diesem Spaghetti-Code?
Danke.
Aquarium1974
Java:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Test meinString = new Test();
auslesenKonfiguration();
textOut = (TextView) findViewById(R.id.strasseort);
locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
geocoder = new Geocoder(this);
Location lastLocation = locationManager
.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (lastLocation != null)
onLocationChanged(lastLocation);
// Fokus auf erste Textview legen, damit das Softkeyboard nicht beim
// Programmstart aufpoppt
TextView textview = (TextView) findViewById(R.id.textview);
textview.setFocusableInTouchMode(true);
textview.requestFocus();
Button buttonJetztDatum = (Button) findViewById(R.id.ButtonJetztDatum);
Button buttonJetztUhrzeit = (Button) findViewById(R.id.ButtonJetztUhrzeit);
Button buttonGPS = (Button) findViewById(R.id.GPS);
Button buttonSenden = (Button) findViewById(R.id.buttonSenden);
Button buttonBeweisfoto = (Button) findViewById(R.id.buttonBeweisfoto);
Spinner spinner1 = (Spinner) findViewById(R.id.spinnerfahrzeugtyp);
ArrayAdapter<CharSequence> adapter1 = ArrayAdapter.createFromResource(
this, R.array.arrFahrzeugtyp,
android.R.layout.simple_spinner_item);
adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(adapter1);
spinner1.setOnItemSelectedListener(new MyOnItemSelectedListener());
Spinner spinner2 = (Spinner) findViewById(R.id.spinnerordnungsamt);
ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(
this, R.array.arrOrdnungsamt,
android.R.layout.simple_spinner_item);
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(adapter2);
// spinner2.setOnItemSelectedListener(new MyOnItemSelectedListener2());
Spinner spinner3 = (Spinner) findViewById(R.id.spinnerfabrikat);
ArrayAdapter<CharSequence> adapter3 = ArrayAdapter
.createFromResource(this, R.array.arrFabrikat,
android.R.layout.simple_spinner_item);
adapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner3.setAdapter(adapter3);
Spinner spinner4 = (Spinner) findViewById(R.id.spinnervergehen);
ArrayAdapter<CharSequence> adapter4 = ArrayAdapter
.createFromResource(this, R.array.arrVergehen,
android.R.layout.simple_spinner_item);
adapter4.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner4.setAdapter(adapter4);
buttonJetztDatum.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Toast.makeText(Test1Activity.this, "Datum",
// Toast.LENGTH_SHORT)
// .show();
EditText t = (EditText) findViewById(R.id.datum);
t = (EditText) findViewById(R.id.datum);
SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
Date date = new Date(System.currentTimeMillis());
final String datetime = dateFormat.format(date);
t.setText(datetime);
}
});
buttonSenden.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
EditText datum = (EditText) findViewById(R.id.datum);
String StrJetztDatum = datum.getText().toString();
EditText uhrzeit = (EditText) findViewById(R.id.uhrzeit);
String StrJetztUhrzeit = uhrzeit.getText().toString();
EditText strasseort = (EditText) findViewById(R.id.strasseort);
String strStrasseOrt = strasseort.getText().toString();
GPSActivity gps = new GPSActivity();
final EditText kennzeichen = (EditText) findViewById(R.id.kennzeichen);
String StrKennzeichen = kennzeichen.getText().toString();
String StrKennzeichen2;
StrKennzeichen2 = StrKennzeichen.toUpperCase();
...........
}
Zuletzt bearbeitet: