Das erste Mal in Java zu entwickeln und das erste Mal für Android zu entwickeln, ist also eine ziemlich neue Frage.Wie funktioniert eine '.class'-Eigenschaft?
Im Moment habe ich diesen Code:
public void onBtnClicked(View v){
/** Handles button navigation */
@SuppressWarnings("rawtypes")
Class c;
int viewId = v.getId();
switch (viewId) {
case R.id.btnNewTourny :
c = NewTourny.class;
break;
case R.id.btnTeamEditor :
c = EditTeam.class;
break;
case R.id.btnCatEditor :
c = EditCat.class;
break;
case R.id.btnLoadTourny :
c = EditCat.class;
break;
case R.id.btnNewCategory :
c = NewCat.class;
break;
default :
c = Main.class;
}
Intent myIntent = new Intent(v.getContext(), c);
startActivityForResult(myIntent, 0);
}
Kurze Frage:
Was die .class- Eigenschaft zu tun hat, zb in 'c = NewTourny.klasse'?
Warum kann ich c nicht als Tourny (die Eltern aller dieser Klassen) casten?
Lange Frage:
Diese derzeit behandelt alle Schaltfläche Navigations während meiner App und funktioniert einwandfrei. Wie Sie jedoch sehen können, habe ich eine "Rawtype" Warnung unterdrückt, die kommt, wenn ich c als Klasse caste. Nun, ich möchte wirklich einen Code ohne Warnungen, also dachte ich mir, alle diese Klassen sind ein Kind von 'Tourny', also dachte ich, es würde funktionieren, Casting wie Tourny - aber das geht nicht. Dann wurde mir klar, dass ich nicht wirklich wusste, was der Code "NewTourny.class" tatsächlich tat, und das könnte der Schlüssel dazu sein, warum ich c nicht als Tourny c bezeichnen konnte. Also, was macht .class?
Bedeutet dies, dass ich nicht Gießen c als Klasse vermeiden können, und vermeiden so die Warnung ? – LongInt
Klasse c; würde es weggehen lassen? oder Klasse > c; wenn es möglich ist, dass es nicht einmal eine Aktivität ist! –
Blundell
Klasse löst diesen Fehler aus: _Typenkonflikt: Konnte nicht von Klasse in Klasse _ konvertiert werden, aber Klasse > funktioniert. –
LongInt