mboost-dp1
Lidt mangel på JAVA forståelse 2
- Forside
- ⟨
- Forum
- ⟨
- Programmering
private static class NetworkAttributes {
/**
* Class for holding settings read from resources.
*/
public String mName;
public int mType;
public int mRadio;
public int mPriority;
public NetworkInfo.State mLastState;
public NetworkAttributes(String init) { // Hvad sker der her?
String fragments[] = init.split(",");
mName = fragments[0].toLowerCase();
mType = Integer.parseInt(fragments[1]);
mRadio = Integer.parseInt(fragments[2]);
mPriority = Integer.parseInt(fragments[3]);
mLastState = NetworkInfo.State.UNKNOWN;
}
public boolean isDefault() {
return (mType == mRadio);
}
}
NetworkAttributes[] mNetAttributes;
Sig mig, kalder NetworkAttributes sig selv inden i klassen??
Qw_freak (1) skrev:
public NetworkAttributes(String init) { // Hvad sker der her?
...
Sig mig, kalder NetworkAttributes sig selv inden i klassen??
Kort svar:
Nej det gør den ikke. Det er dens Constructor.
Længere svar:
Du kan bl.a. se at det er Constructoren, ved at metoden hedder det samme som klassen, med Stort forbogstave, metoder starter normalt med småt.
Desuden kan du se det fordi den ikke returnerer noget, ikke engang void - (Den returnerer jo sig selv).
Det er den du kalder når du skriver:
NetworkAttributes netAtt = new NetworkAttributes("En String");
Af en eller anden årsag tager den en række parametre i én kommasepereret String, i stedet for at tage et String[] - som fx main(String[] argumenter) gør.
Ps. der er ikke noget i vejen for at klasser kalder eller opretter instanser af sig selv, det er bare ikke tilfældet her.
#4 Det er den samme som indlægget i går ikke?
ConnectivityManager <- Er en klasse
MAX_NETWORK_TYPE <- En integer konstant i den klasse.
Dvs. MAX_NETWORK_TYPE er et heltal vi henter fra klassen og lægger én til.
[ ] definerer størrelsen på et array.
I sætningen:
String[] strings = new String[5];
Betyder [ ] at vi gerne vil deklarere et array.
[5] betyder at der skal være plads til 5 elementer i arrayet (i række)
Da arrays tæller nul med går [5] fra {0-4} - 0,1,2,3,4 == 5 (Dette kaldes nulindeksering, og standarden i mange sprog)
Dvs.
mNetAttributes er deklareret tidligere som
NetworkAttributes[] mNetAttributes;
og
mNetAttributes = new NetworkAttributes[ConnectivityManager.M
AX_NETWORK_TYPE+1];
fortæller at størrelsen på dette array er konstanten (M
AX_NETWORK_TYPE) + 1 stor.
Herefter kan du hente network types ud ved at skrive mNetAttributes[0] eller mNetAttributes[1].. osv op til MAX. (Det vi talte om igår, med at MAX == 13, [13] == {0-12}+1 == {0-13}
ConnectivityManager <- Er en klasse
MAX_NETWORK_TYPE <- En integer konstant i den klasse.
Dvs. MAX_NETWORK_TYPE er et heltal vi henter fra klassen og lægger én til.
[ ] definerer størrelsen på et array.
I sætningen:
String[] strings = new String[5];
Betyder [ ] at vi gerne vil deklarere et array.
[5] betyder at der skal være plads til 5 elementer i arrayet (i række)
Da arrays tæller nul med går [5] fra {0-4} - 0,1,2,3,4 == 5 (Dette kaldes nulindeksering, og standarden i mange sprog)
Dvs.
mNetAttributes er deklareret tidligere som
NetworkAttributes[] mNetAttributes;
og
mNetAttributes = new NetworkAttributes[ConnectivityManager.M
AX_NETWORK_TYPE+1];
fortæller at størrelsen på dette array er konstanten (M
AX_NETWORK_TYPE) + 1 stor.
Herefter kan du hente network types ud ved at skrive mNetAttributes[0] eller mNetAttributes[1].. osv op til MAX. (Det vi talte om igår, med at MAX == 13, [13] == {0-12}+1 == {0-13}
ISCS (5) skrev:Det er den samme som indlægget i går ikke?
Jo... :)
ISCS (5) skrev:Herefter kan du hente network types ud ved at skrive mNetAttributes[0] eller mNetAttributes[1].. osv op til MAX. (Det vi talte om igår, med at MAX == 13, [13] == {0-12}+1 == {0-13}
Yep, det fik jeg fat i, jeg var bare meget i tvivl om hvad parantes-typerne betød... :)
String[] naStrings = context.getResources().getStringArray(
com.android.internal.R.array.networkAttributes);
Her lægges der så nogen data over i arrayet, så vidt jeg kan se, men når jeg inkluderer det i min kode, kan den ikke forstå:
com.android.internal.R.array
Hvad kan det være??
Jeg har ikke så meget erfaring med Android. Men Android benytter sig af R.java til at binde ressourcerne i appen til et ID.
Du må ikke hænge mig op på det men:
com.android.internal.R.array.networkAttributes; Er et ID på det her String-array vil jeg tro.
Den interne R klasse er ikke direkte tilgængelig i Android SDK'en.
Hvis du kender det konkrete ID, kan du hente Arrayet med Ressources.getSystem(). Men fordi de ID's ændres fra build til build, og fra device til device frarådes det.
Læs evt. mere her og her
Du må ikke hænge mig op på det men:
com.android.internal.R.array.networkAttributes; Er et ID på det her String-array vil jeg tro.
Den interne R klasse er ikke direkte tilgængelig i Android SDK'en.
Hvis du kender det konkrete ID, kan du hente Arrayet med Ressources.getSystem(). Men fordi de ID's ændres fra build til build, og fra device til device frarådes det.
Læs evt. mere her og her
Gå til top
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.