getContext().getSystemService erreur
Donc, je suis juste en train de actuellement gonfler à vue dans mon getView fonction et getContext() pour une raison quelconque est de dire que c'est undefined..
package com.MTSUAndroid;
import com.MTSUAndroid.Alarm_Settings.EfficientAdapter1.ViewHolder;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.ImageView;
import android.graphics.BitmapFactory;
import android.graphics.Bitmap;
public class Alarm_Settings extends ListActivity {
public static class EfficientAdapter1 extends BaseAdapter{
private LayoutInflater mInflater;
public EfficientAdapter1(Context context){
mInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
//TODO Auto-generated method stub
return 0;
}
@Override
public Object getItem(int position) {
//TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
//TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
int viewType = this.getItemViewType(position);
switch (viewType)
{
case 1:
holder = new ViewHolder();
View v = convertView;
if (v == null)
{
LayoutInflater vi = null;
//LayoutInflater vi = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.alerts,parent,false);
holder.text1 = (TextView)v.findViewById(R.id.menu_Cancel);
v.setTag(holder);
}
else {
holder = (ViewHolder)v.getTag();
}
return v;
case 2:
ViewHolder holder1 = new ViewHolder();
View v1 = convertView;
if (v1 == null)
{
LayoutInflater vi = null;
//LayoutInflater vi = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v1 = vi.inflate(R.layout.about, parent, false);
holder1.text1 = (TextView)v1.findViewById(R.id.menu_Cancel);
v1.setTag(holder1);
}
else {
holder1 = (ViewHolder)v1.getTag();
}
return v1;
}
return null;
}
static class ViewHolder{
TextView text1;
}
}
public void onCreate(Bundle SavedInstanceState)
{
super.onCreate(SavedInstanceState);
setListAdapter(new EfficientAdapter1(this));
ListView listview = getListView();
listview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Intent intent = new Intent(Alarm_Settings.this, Alerts.class);
startActivity(intent);
}
});
}
}
C'est le morceau de code que je vais avoir des problèmes avec. LayoutInflater vi = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
getContext() n'est pas défini pour la classe et je ne comprends pas pourquoi 🙁
OriginalL'auteur cj1098 | 2011-07-13
Vous devez vous connecter pour publier un commentaire.
Vous appeler dans la classe
EfficientAdapter1
qui ne s'étend pas d'activité et n'a pas cette méthode.Ajouter un
Context
champ à l'intérieur de la classe et de l'appelgetSystemService
:OriginalL'auteur MByD
getContext() n'est pas une méthode sur BaseAdapter. Stocker le contexte donné dans le constructeur dans une variable de membre et l'utiliser.
OriginalL'auteur hackbod
Si vous n'avez pas besoin d'accéder à votre BaseAdapter d'autres Activités, vous pouvez remplacer getContext() avec Alarm_Settings.cette
OriginalL'auteur Marmoy
Vous utilisez
BaseAdapter
de sorte que vous ne pouvez pas utiliserDans le cas de
ArrayAdapter
vous pouvez l'utiliser comme suit:Passer
Context
comme un paramètre dans votre intérieur de la classe, puis de l'utiliser lorsque vous en avez besoin.OriginalL'auteur Rovin