La prima volta che si sviluppa in Java e si sviluppa per la prima volta per Android, quindi è una domanda abbastanza nuova.Come funziona una proprietà '.class'?
Al momento ho questo codice:
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);
}
breve domanda:
Che cosa significa la proprietà .class fare, f.ex. in 'c = NewTourny.class'?
Perché non posso trasmettere c come Tourny (che è il padre di tutte queste classi)?
domanda a lungo:
Questo gestisce attualmente tutte le navigazioni dei pulsanti in tutta la mia app, e funziona bene. Tuttavia, come puoi vedere, ho soppresso un avvertimento "rawtype", che viene quando lancio cast come classe. Ora, voglio davvero un codice senza avvisi, quindi ho pensato 'bene, tutte queste classi sono un figlio di' Tourny '', quindi ho pensato che avrebbe funzionato, lanciando c come Tourny - ma questo non funziona. Poi mi sono reso conto che non sapevo veramente quale fosse il codice "NewTourny.class", e questo potrebbe essere il motivo per cui non potevo lanciare c come Tourny. Quindi, cosa fa .class?
Questo significa, che non posso evitare di getto C come classe, e quindi evitare l'avvertimento ? – LongInt
Classe c; lo farebbe andare via? o Classe > c; se è possibile che non sia nemmeno un'attività! –
Blundell
Classe genera questo errore: _Tipo non corrispondente: impossibile convertire dalla Classe alla Classe _, ma la Classe > funziona. –
LongInt