GetContext (). Error getSystemService

Así que sólo estoy tratando de inflacionar una vista en mi función getView y getContext () por alguna razón es decir que es indefinido ..

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); } }); } } 

Este es el código con el que estoy teniendo problemas. LayoutInflater vi = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); GetContext () no está definido para la clase y no entiendo por qué 🙁

Lo llamas en la clase EfficientAdapter1 que no extiende la actividad y no tiene tal método.

Agregue un campo Context a la clase interna y llame a getSystemService :

 /* snip */ public static class EfficientAdapter1 extends BaseAdapter{ private LayoutInflater mInflater; private Context ctx; public EfficientAdapter1(Context context){ mInflater = LayoutInflater.from(context); ctx = context; } /* snip */ LayoutInflater vi = (LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE); /* snip */ 

GetContext () no es un método en BaseAdapter. Almacene el contexto dado a usted en el constructor en una variable del miembro y apenas utilice eso.

Si no necesita acceder a su BaseAdapter desde otras Actividades, puede reemplazar getContext () por Alarm_Settings.this

Está utilizando BaseAdapter para que no pueda utilizar

 getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

En el caso de ArrayAdapter puede utilizarlo de la siguiente manera:

 LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

Pase Context como un parámetro en su clase interna y luego utilícelo donde lo necesite.

  • Obtenga el contexto de aplicación de la clase singleton de no actividad
  • Uso del contexto para iniciar otra actividad
  • Cómo extender LinearLayout correctamente para crear una vista personalizada
  • ¿Cómo obtiene un objeto Drawable de un id de recurso en el paquete android?
  • Cómo comparar los objetos de contexto de las dos actividades diferentes ..?
  • Cómo utilizar setContentView (int) de la clase que no se extiende Actividad
  • obtiene el objeto Activity mientras está en el contexto View
  • ¿Cuál es la diferencia entre esto, getContext () y getActivity ()?
  • Necesidad de Contexto en clases sin actividad
  • ¿Por qué mi contexto en mi Fragmento es nulo?
  • ¿Cómo pasar el contexto de la actividad a la actividad?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.