findViewById en non-Activité de la classe
Encore relativement nouveau à cela, je vais avoir des problèmes dans la recherche d'une vue dans une non-activité de la classe MyLocation que j'ai choisi dans mon activité de classe MainActivity. Je suis en utilisant MyLocation pour obtenir la longitude et la latitude.
Je tiens à souligner un textview lorsque le GPS ou le Réseau a été utilisé. Pour ce faire j'ai besoin de trouver la textviews dans la non-activité de la classe MyLocation.
Ici est de savoir comment je vais l'appeler dans MainActivity:
public class MainActivity extends ActionBarActivity implements LocationListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MyLocation myLocation = new MyLocation();
myLocation.getLocation(this, locationResult);
}
Et voici ce que j'ai essayé dans MyLocation pour trouver le textviews:
public class MyLocation {
LocationManager lm;
LocationResult locationResult;
private Context context;
TextView tvnetwork, tvgps;
private int defaultTextColor;
LocationListener locationListenerNetwork = new LocationListener() {
public void onLocationChanged(Location location) {
locationResult.gotLocation(location);
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.main, null);
tvnetwork = (TextView) v.findViewById(R.id.tvnetwork);
tvgps = (TextView) v.findViewById(R.id.tvgps);
defaultTextColor = tvgps.getTextColors().getDefaultColor();
tvnetwork.setTextColor(context.getResources().getColor(
R.color.green));
tvgps.setTextColor(defaultTextColor);
lm.removeUpdates(this);
lm.removeUpdates(locationListenerGps);
}
public void onProviderDisabled(String provider) {
}
public void onProviderEnabled(String provider) {
}
public void onStatusChanged(String provider, int status, Bundle extras) {
}
};
Mais les points de vue ne sont pas trouvés. J'ai déjà obtenir un NPE @ .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
. Ce que je fais mal?
getLocation
méthode ?très simple...quand vous appelez MyLocation classe..il suffit de préciser le contexte en tant que paramètre et ainsi vous pouvez obtenir toutes les choses à partir de là.
OriginalL'auteur sascha | 2014-09-12
Vous devez vous connecter pour publier un commentaire.
Parce que
context
estnull
dansMyLocation
classe. utilisationMyLocation
constructeur de la classe de passerMainActivity
contexte dansMyLocation
pour accéder aux services du système d':et dans
MainActivity
créerMyLocation
objet de classe en passant MainActivity contexte:Maintenant utiliser
context
pour accéder aux services du système dansMyLocation
classeEDIT: au Lieu de gonfler en page principale de nouveau dans onLocationChanged utiliser contexte d'Activité pour accéder à la vue de l'Activité Mise en page:
voir mon edit répondre
Qui a fait le tour, merci beaucoup!
OriginalL'auteur ρяσѕρєя K
Pourquoi vous voulez le faire en classe distincte que vous êtes à la mise en œuvre ": LocationListener" dans l'Activité elle-même. Et si vous voulez le faire dans une catégorie distincte. Vous pouvez vous informer de l'activité par la mise personnalisé listners comme ce
OriginalL'auteur John
Essayer de cette façon,j'espère que ça vous aidera à résoudre votre problème.
OriginalL'auteur Haresh Chhelana