2013-05-16 12 views
10

Ho una classe denominata BinderData che si estende BaseAdapter. Voglio ottenere il contesto di classe base. Ho provato a utilizzare getContext() ma questo non funziona in caso di BaseAdapter.Come ottenere il contesto per BaseAdapter in Android

Come posso ottenere il contesto di questa classe?

risposta

16

Creare un costruttore che prende uno Context come uno dei suoi argomenti e lo memorizza in una variabile privata.

public class SampleAdapter extends BaseAdapter { 
    private Context context; 

    public SampleAdapter(Context context) { 
     this.context = context; 
    } 

    /* ... other methods ... */ 
} 
+2

ti suggerisco di ottenere una maniglia ferma su Java nozioni di base prima di iniziare ad affrontare specificamente Android. – Karakuri

+0

nice catch ..... + 1 –

+0

Sta impostando il contesto come null. – Sid

24

Ancora una soluzione-

Se si dispone di un genitore, è possibile accedere direttamente al contesto come cd

public class SampleAdapter extends BaseAdapter { 

      LayoutInflater inflater; 

      @Override 
      public View getView(int position, View convertView, ViewGroup parent) { 
       if(inflater == null){ 
       Context context = parent.getContext(); 
       inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       } 
       ... 
       ... 

       return convertView; 
      } 

    } 
+4

Questa dovrebbe essere la risposta corretta. @ La risposta di Karakuri è inefficiente –

+3

La risposta corretta. –

3
Context context = parent.getContext();