1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

Klasse erstellen mit Zugriff auf Android.Content.Context

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von neubs, 07.03.2012.

  1. neubs, 07.03.2012 #1
    neubs

    neubs Threadstarter Neuer Benutzer

    Beiträge:
    12
    Erhaltene Danke:
    0
    Registriert seit:
    07.03.2012
    Hallo Leute,

    ich bin neu hier, komme eigentlich aus der VB / .Net Richtung. Beschäftige mich nun seit einigen Tagen mit Eclipse, dem Android SDK und Co.

    Nun bin ich dabei für mein erstes App eine grobe Struktur aufzubauen und da scheitert es nun schon an der ersten Klasse.

    Mein Vorhaben: meine App soll einige vom Benutzer einzustellende Werte auf dem Gerät ablegen (SharedPreferences ist bekannt und das Ablegen der Werte klappt auch soweit). Da es sich bei den Werten aber um Grundeinstellungen der App handelt sollten diese in jeder Activitiy zur Verfügung stehen. Also ab in eine Klasse damit. Ich habe herausgefunden das ich der Klasse einen Context übergeben muss/sollte damit aus diesem dann Zugriff auf die einzelnen Android funktionen besteht mit denen ich auch in der Activity arbeiten kann - aber irgendwie klappt das net :crying:.

    Hier mal meine Klasse:
    Code:
    package de.test.zeiterfassung;
    
    import android.content.Context;
    
    public class Verbindung extends Context{
        
        public String Server;
        public int Code;
        public int PIN;
        public int MitarbeiterNr;
        
        public Verbindung(Context ctx){
            Server = ctx.getResources().getString( R.string.stdValServerName);        
        }
    }
    
    Nun habe ich zwar über ctx.getResources() zugriff auf meine Android Funktionen dafür meckert mir Eclipse aber meine Klasse an (public class Verbindung) mit den Worten "Der Typ Verbindung muss die übernommene abstrakte Methode Context.enforcePermission(String, int, int, String) implementieren". Wenn ich nun "Nicht implementierte Methoden hinzufügen" wähle, addet mir Eclipse Seitenweise Code - ist das normal und muss ich das einfach ignorieren oder mach ich hier noch irgendwas falsch.

    Bin für jeden Tip dankbar!

    mfg
    Sebastian
     
  2. Neeldarax, 07.03.2012 #2
    Neeldarax

    Neeldarax Erfahrener Benutzer

    Beiträge:
    170
    Erhaltene Danke:
    31
    Registriert seit:
    07.12.2010
    Hi neubs,

    schmeiß doch extends Context raus oder muss deine Klasse Verbindung ein Context sein?
    Wenn ja, wieso übergibst du dann einen Context im Construktor?

    Beides zu verwenden macht irgendwie keinen Sinn.

    Da Context von der Activity gestellt wird, würde ich empfehlen diesen zu nutzen.

    regards
     
    neubs bedankt sich.
  3. neubs, 07.03.2012 #3
    neubs

    neubs Threadstarter Neuer Benutzer

    Beiträge:
    12
    Erhaltene Danke:
    0
    Registriert seit:
    07.03.2012
    Hey,

    danke - hab den extends Context rausgeschmissen. Manchmal liegt die Lösung so nah ...
    Jetzt kann ich weitermachen und auf neue Probleme stossen ;)

    Danke nochmal

    mfg
    sebastian
     
  4. Sentence, 07.03.2012 #4
    Sentence

    Sentence Erfahrener Benutzer

    Beiträge:
    242
    Erhaltene Danke:
    51
    Registriert seit:
    27.01.2011
    Phone:
    S3, S6 Edge
    Moin,
    solange der Name deiner SharedPreferences in jeder Activity gleich ist, kannst du auch in jeder Activity auf diese zugreifen. Dafür musst du diese nicht in einer Klasse auslagern.

    SharedPreferences settings = getSharedPreferences("MyPrefs", 0);

    Deswegen heißen die SharedPreferences ja auch SharedPreferences, oder verstehe ich dich falsch? :confused2:

    MfG
     

Diese Seite empfehlen