Klasse erstellen mit Zugriff auf Android.Content.Context

N

neubs

Neues Mitglied
0
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
 
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
 
  • Danke
Reaktionen: neubs
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
 
neubs schrieb:
(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.

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
 

Ähnliche Themen

M
  • MikelKatzengreis
Antworten
5
Aufrufe
131
swa00
swa00
R
Antworten
6
Aufrufe
1.014
swa00
swa00
5
Antworten
0
Aufrufe
1.150
586920
5
Zurück
Oben Unten